ruta rewriterule ocultar mvc index htaccess ejemplo como amigables php .htaccess mod-rewrite friendly-url

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]