2009-04-23 11 views
1

Je suis venu avec une réécriture pour aller à n'importe quelle page sur mon site Web sans taper l'extension .php car il est automatiquement ajouté à l'URL.Faire une réécriture supprimer .php extension?

La règle est la suivante: RewriteRule^(\ w +)/$ /$1.php

Il prend tout ce que vous tapez dans mon index et ajoute .php, donc vous pouvez mettre en http://sampardee.com/index et il tire vers le haut? index.php

maintenant, ma question est de savoir comment détecter lorsqu'un utilisateur entre http://sampardee.com/index.php et changer pour http://sampardee.com/index

Comment pourrais-je faire avec un rewriterule?

Répondre

2

Vous devez forcer une redirection sur l'utilisateur sans correspondant à la redirection interne:

RewriteCond %{ENV:REDIRECT_STATUS} !200 
RewriteRule ^(\w+)\.php$ /$1 [R=301] 

RewriteRule ^(\w+)/?$ /$1.php 

Cela redirige l'utilisateur avec une redirection 301 Moved Permanently à l'URL modifiée.

+0

Vous devrez peut-être jouer avec RewriteCond pour que les deux règles ne correspondent pas en même temps, mais le scénario que vous avez décrit devrait être réalisable avec des réécritures. – andri

+0

J'ai corrigé ma réponse, elle ne sera pas bouclée maintenant (vous devez vérifier avec un RewriteCond s'il s'agit déjà d'une redirection ou non). – andri

Questions connexes