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;
    // ...
}]);


person Brian Emilius    schedule 26.07.2015    source источник
comment
Вам нужно настроить $locationProvider и эту строку. $locationProvider.html5Mode(true);   -  person mpowmap    schedule 26.07.2015


Ответы (1)


Если вы уже сделали свои перезаписи, вы должны просто установить $locationProvider.html5Mode(true). См. https://github.com/angular-ui/ui-router/wiki/Частозадаваемыевопросы#how-to-configure-your-server-to-work-with-html5mode

Кроме того, могут быть полезны аналогичные вопросы о переполнении стека: Прямой URL-адрес Angular без хэша $location/переключение между html5 и режимом hashbang/перезапись ссылки

person mofojed    schedule 26.07.2015
comment
Благодарю вас! Это попало в точку :) - person Brian Emilius; 27.07.2015