How to delete '#' sign in angular-ui-router URLs
You need to enable HTML5Mode if you want navigation without hash tags:
app.config(["$locationProvider", function($locationProvider) { $locationProvider.html5Mode(true);}]);
You will also need to tell angular the root URL of your app by adding the following code to the <head>
of your HTML file:
<base href="/">
Be aware that support for HTML5 mode depends on the browser. For those who don't support the History API, Angular will fallback to hashbang.
If you are using Angular 1.6+, you will also need to remove the hashPrefix
from the URL:
appModule.config(['$locationProvider', function($locationProvider) { $locationProvider.hashPrefix(''); // by default '!' $locationProvider.html5Mode(true);}]);
Don't forget to change the base as well:
<head> ... <base href="/"></head>
yourApp.config(function ($stateProvider, $urlRouterProvider,$locationProvider) { $urlRouterProvider.otherwise('/home'); //add this line in your routing code $locationProvider.html5Mode(true); $stateProvider.state('web.home', { url: '/home', templateUrl: 'pages/home.html', controller: 'mainController' }) }
in your index.php or index.html in < head > tag insert
< base href="/" >
for CodeIgniter :
<base href=" < ?php echo base_url() ? >" >