重写Angularjs的ngroute和htaccess



我想知道如何将angularjs的ngRoute和htaccess一起重写。

我有ngRoute工作所以我得到这样的url:

http://domain.com/#/something/somestring

但是我非常喜欢这个结果:

http://domain.com/something/somestring

换句话说,我想去掉url中的/#。我以前用。htaccess和mod_rewrite.c和PHP这样做过,但我不知道如何用AngularJS实现相同的结果。任何指针,教程链接,文章等,解释如何做到这一点,或只是一个例子,将非常感谢。

一些要求:我应该仍然能够按照我到目前为止所做的方式进行路由:

blogApp.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/page/:pagePermaLink', {
        templateUrl: './assets/templates/page.html',
        controller: 'pageCtrl'
      }).
      when('/article', {
      	templateUrl: './assets/templates/article.html',
      	controller: 'articleCtrl'
      }).
      otherwise({
        redirectTo: '/home',
        templateUrl: './assets/templates/page.html',
        controller: 'mainCtrl'
      });
  }]);

URL查询字符串,如:pagePermaLink,应该仍然可以从作用域访问:

blogCtrl.controller('pageCtrl', ['$scope', '$routeParams', '$http',
function($scope, $routeParams, $http) {
    var foo = $routeParams.pagePermaLink;
    // ...
}]);

如果您已经完成了重写,您应该能够设置$locationProvider.html5Mode(true)。看到https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions how-to-configure-your-server-to-work-with-html5mode

同样,类似的堆栈溢出问题可能会有所帮助:没有哈希的Angular直接Url$location/在html5和hashbang模式之间切换/链接重写

最新更新