2014-09-03 3 views
1

Je veux cacher l'extension .php j'ai donc écrit code suivant dans le fichier .htaccess que j'ai trouvé à ce lien How to remove file extension from website address?URL automatique ne fonctionne pas Réécriture

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

Ce travail bien quand je tape localhost/testsite/indexer affiche correctement localhost/testsite/index.php et affiche localhost/testsite/index dans la barre d'adresse comme je le souhaite, mais lorsque je tape forcement localhost/testsite/index.php, il n'est pas converti en localhost/testsite/index. Je veux supprimer l'extension même lorsque l'utilisateur tape .php après le nom de la page.

+0

Je crains que vous dévers. J'ai une expérience plus que moyenne avec les fichiers htaccess et cela fonctionne comme vous l'avez écrit. Vous pouvez toujours accéder au chemin complet au lieu de le réécrire si vous l'écrivez manuellement et je ne vois rien de mal là-dedans! :) – Cowwando

+0

Est-ce un doublon de http://stackoverflow.com/questions/4026021/remove-php-extension-with-htaccess – jbrahy

+0

dans le site stackoverflow par exemple si j'écris stackoverflow.com/questions/25636602/automatic-url -rewriting-not-working.php? noredirect = 1 # comment40055522_25636602 il affichera stackoverflow.com/questions/25636602/automatic-url-rewriting-not-working?noredirect=1#comment40055522_25636602 et supprimera l'extension .php. –

Répondre

0

Demandez à votre .htaccess comme ceci:

DirectoryIndex index.php 
RewriteEngine On 
RewriteBase/

## hide .php extension 
# To externally redirect /dir/file.php to /dir/file 
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.php[\s?] [NC] 
RewriteRule^/%1%2 [R=302,L,NE] 

# To internally forward /dir/file to /dir/file.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ $1.php [L] 
Questions connexes