2009-06-28 19 views
8

Riscrivo i miei URL per essere di facile utilizzo. Ad esempio, ho una pagina chiamata user.php che riscrivo in/utente. Ma un utente può ancora usare user.php. Posso reindirizzare a un 404 se richiedono una pagina con estensione .php?errore mod_rewrite 404 if .php

Options -MultiViews +FollowSymlinks -Indexes 
RewriteEngine on 


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

Grazie.

risposta

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

Piuttosto sicuro che R = 404 non è uno dei codici di stato che contrassegna accetta ... –

+0

che funziona ma posso ancora accedere alla pagina se aggiungo un punto interrogativo dopo user.php ?. forse posso fare qualcosa per questo? –

+0

abbastanza giusto. non posso discutere se funziona. –

2

Questo dovrebbe fare il trucco, penso:

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

quindi ho bisogno di aggiungere una regola per tutte le mie pagine? –

2

Un 301 redirectpuò essere più appropriato per questo compito.