2009-06-28 8 views
8

Je réécris mes URL pour être convivial. Par exemple, j'ai une page appelée user.php que je réécris à/user. Mais un utilisateur peut toujours utiliser user.php. Puis-je rediriger vers un 404 s'ils demandent une page avec une extension .php?erreur mod_rewrite 404 si .php

Options -MultiViews +FollowSymlinks -Indexes 
RewriteEngine on 


RewriteRule ^user/([0-9]+)$ user.php?id=$1 [L,QSA] 

Merci.

Répondre

7
RewriteCond %{THE_REQUEST} \.php[\ /?].*HTTP/ 
RewriteRule ^.*$ - [R=404,L] 
+0

Assez sûr que R = 404 n'est pas l'un des codes d'état que le drapeau accepte ... –

+0

qui fonctionne mais je peux toujours accéder à la page si j'ajoute un point d'interrogation après user.php ?. peut-être que je peux faire quelque chose à ce sujet? –

+0

assez juste. ne peut pas discuter si cela fonctionne. –

2

Cela devrait faire l'affaire, je pense:

RewriteRule (.*)\.php$ path/to/your/404file [L] 
+0

alors j'ai besoin d'ajouter une règle pour toutes mes pages? –

2

Un 301 redirectpeut être plus approprié pour cette tâche.

Questions connexes