2012-08-13 16 views
5

Tengo un sitio que pasa satisfactoriamente el contenido después de la primera barra a un archivo .php especificado. (Elegantemente: eliminar ".php")Cómo pasar parámetros en Rewrite Rules con la especificación del nombre de archivo .php?

site.com/azamat to site.com/azamat.php

RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [NC] 

¿Cómo puedo añadir parámetros adicionales a estas reglas, por lo que puede pasar "página" parámetros, como:

site.com/azamat/bagatov to site.com/azamat.php?page=bagatov

o

site.com/thisisthefile/andparams to site.com/thisisthefile.php?page=andparams

Respuesta

2

Trate de añadir estas reglas (mantener a los que ya tiene):

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$ 
RewriteCond %{DOCUMENT_ROOT}/%1.php -f 
RewriteRule ^([^/]+)/(.+)$ /$1.php?page=$2 [L] 

Esto es más o menos como lo que se tiene con la excepción de usar una referencia inversa %1 para comprobar si el primera parte de la URI existe como un archivo php. Este es el partido de la primera parte:

RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$ 

Y esta es la fheck para ver si la agrupación ([^/]+) existe como un archivo PHP:

RewriteCond %{DOCUMENT_ROOT}/%1.php -f 

Todo lo demás es para que coincida con lo que hay después de la primera / y hacer que el page query string param.

Cuestiones relacionadas