从Angular JS中的URL中删除#符号

时间:2018-12-25 06:11:22

标签: angularjs

我是AngularJS的初学者,我正在尝试从URL中删除#符号,并且我正在使用Visual Studio code IDE,我按照以下步骤从URL中删除了#并在启动时具有HTTP Live server正常工作且已从URL删除#的应用程序,但是当我重新加载页面时,我得到404可以有人建议我

app.js

var routerApp = angular.module('routerApp', ['ui.router']);

routerApp.config(function ($stateProvider,$locationProvider,$urlRouterProvider) {

    $urlRouterProvider.otherwise('/employeeList');

    $stateProvider

        .state('home', {
            url: '/home',
            templateUrl: 'templates/home.html'
        })
       .state('employeeList', {
            url: '/employeeList',
            templateUrl: 'templates/list_of_employees.html',
            controller: 'EmployeeController'
        })
        $locationProvider.html5Mode(true).hashPrefix('')

});

index.html

<head>
  <base href='/'>
</head>

1 个答案:

答案 0 :(得分:0)

使用此$ locationProvider.html5Mode(true)要求在服务器端重写URL,基本上,您必须重写所有指向应用程序入口点的链接(例如index.html)。

假设您正在使用Apache,并且索引文件是index.php或index.html,请尝试将以下内容添加到.htaccess文件中以创建重写规则。

   <IfModule mod_rewrite.c> 
      RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f 
      RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) /index.php/#/$1 
   </IfModule>