257 votes

Suppression du hashtag des URL AngularJS (symbole #)

Est-il possible de supprimer le symbole # des URLs angular.js?

Je veux toujours être en mesure d'utiliser le bouton de retour des navigateurs etc quand je change la vue et mettra à jour l'URL avec des paramètres, mais je ne veux pas le symbole #.

Le routisan tutorial est déclaré comme suit

 angular.module('phonecat', []).
  config(['$routeProvider', function($routeProvider) {
  $routeProvider.
  when('/phones', {templateUrl: 'partials/phone-list.html',   controller: PhoneListCtrl}).
  when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}).
  otherwise({redirectTo: '/phones'});
}]);
 

puis-je modifier cela pour avoir la même fonctionnalité sans le #?

254voto

Maxim Grach Points 1669

Oui, vous devez configurer $locationProvider et définir html5Mode sur true :

 angular.module('phonecat', []).
  config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {

    $routeProvider.
      when('/phones', {templateUrl: 'partials/phone-list.html',   controller: PhoneListCtrl}).
      when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}).
      otherwise({redirectTo: '/phones'});

    $locationProvider.html5Mode(true);

  }]);
 

56voto

SSaidi Points 241

Assurez-vous de vérifier le support du navigateur pour l'API d'historique html5:

   if(window.history && window.history.pushState){
    $locationProvider.html5Mode(true);
  }
 

3voto

Thomas Knápek Points 11

Ma solution est de créer .htaccess et d'utiliser le code #Sorian .. sans .htaccess J'ai échoué à supprimer #

 RewriteEngine   On
RewriteBase     /
RewriteCond     %{REQUEST_URI} !^(/index\.php|/img|/js|/css|/robots\.txt|/favicon\.ico)
RewriteCond     %{REQUEST_FILENAME} !-f
RewriteCond     %{REQUEST_FILENAME} !-d
RewriteRule     .               /index.html              [L]
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X