rewriterule - url amigables php mvc
Elimina la extensión.php(explícitamente escrita) para URL amigable (4)
Su reescritura se ignora porque verifica el archivo existente, según su regla:
RewriteCond %{SCRIPT_FILENAME} !-f
Sugiero agregar una verificación de URL en php para redirigir a sí mismo (sin extensión). ¿O desea mostrar el error 404 si alguien accede al archivo existente?
htaccess para eliminar la extensión .php de los archivos de mi sitio.
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ $1.php [L,QSA]
Ahora, si voy a mi sitio
www.mysite.com/home
funciona bien, redirige a home.php pero la URL sigue siendo amigable.
Pero si escribo esta URL:
www.mysite.com/home.php
El home.php se sirve y la URL no es amigable.
¿Cómo puedo evitar este comportamiento? Quiero que si el usuario escribe www.mysite.com/home.php, la URL que se muestra en la barra de URL sea www.mysite.com/home
También puede poner este código dentro de su archivo .htaccess
:
options +multiviews
Lo que hace es buscar extensiones disponibles (.html, .htm y .php, creo) dentro del directorio actual. Entonces, si, por ejemplo, solicita /user
, buscará user.php
.
puedes eliminar .php de las solicitudes como tal
RewriteCond %{REQUEST_URI} ^/(.*).php$
RewriteRule ^(.*)$ %1 [L,QSA]
Código
RewriteEngine On
RewriteBase /
# remove enter code here.php; use THE_REQUEST to prevent infinite loops
RewriteCond %{THE_REQUEST} ^GET/ (.*)/.php/ HTTP
RewriteRule (.*)/.php$ $1 [R=301]
# remove index
RewriteRule (.*)/index$ $1/ [R=301]
# remove slash if not directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*)/ $1 [R=301]
# add .php to access file, but don''t redirect
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1/.php [L]