Angular routes contain #! in the url instead of #
<p>Recently I have noticed that when using <code>ngRoute</code> module in an AngularJS app, the route contains <code>#!</code> in the URL, which was earlier just the <code>#</code>.</p>

<p>For example, <code>www.webiste.com/#/login</code> becomes <code>www.website.com/#!/login</code></p>

<p>I have to enable the <code>html5Mode</code> and also disable the <code>requireBase</code> which removes the base as a whole using the code, </p>

<pre><code>$locationProvider.html5Mode({
       enabled: true,
       requireBase: false
});
</code></pre>

<p>and the URL changes to <code>www.website.com/login</code> which works fine but is misleading and is not what Angular SPA URLs look like.</p>

<p>If I do not enable the <code>html5Mode</code>, the URL is encoded and I cannot get around it. So <code>www.website.com/#/login</code> becomes <code>www.website.com/#!/#%2Flogin</code> (Notice the later <code>/</code> is encoded as <code>%2F</code>).</p>

<p>Is this a change implemented by the developers for some specific purpose? What difference does it make? What changes do I need to make to my app to keep it working? Am I doing something wrong?</p>

<p>Github issue: <a href="https://github.com/angular/angular.js/issues/15547">https://github.com/angular/angular.js/issues/15547</a></p>