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]