urls rewriterule reescribir pretty mod_rewrite htaccess enmascarar crear amigable php url mod-rewrite friendly-url

reescribir - Reescribe todas las consultas para no necesitar la extensión.php usando un mod_rewrite RewriteRule



rewriterule htaccess generator (5)

Me gustaría que todas las consultas como

http://mysite.com/something/otherthing?foo=bar&x=y

para ser reescrito como

http://mysite.com/something/otherthing.php?foo=bar&x=y

En otras palabras, simplemente haga que la extensión .php sea opcional, universal.


Algo como...

RewriteRule /something/(.+)?(.+) /something/$1.php?$2

probablemente funcionaría


Si puede cambiar el httpd.conf y qué hacer, también puede poner:

ForceType application/x-httpd-php

en el archivo ya que obligará a todas las rutas llamadas a ser archivos PHP. Creo que esto también funciona con cadenas de consulta.


Esto funciona:

RewriteCond %{QUERY_STRING} ^.+$ RewriteRule ^/?([^//.]+)$ /$1.php [L]

La idea es asegurarse de que haya una cadena de consulta (signo de interrogación y otras cosas) y, de ser así, compruebe si las cosas que están antes del signo de interrogación no tienen extensión y, de ser así, añada .php.


Solo coincide con rutas sin extensión:

RewriteRule ^(([^/]+/+)*[^/.]+)$ $1.php

Editar: en mi prueba, la cadena de consulta se pasa automáticamente. Si no es así, puede usar esto en su lugar:

RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(([^/]+/+)*[^/.]+)$ $1.php?%1


Lo haría de esta manera. Básicamente, si el archivo no existe, intente agregar .php a él.

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ $1.php [QSA,L]