Tengo dos piezas de código que eliminan la extensión .php.
Solución 1:
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L]Solución 2:
RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L] directory es un directorio
la page es una pagina
problema con la solución 1:
si va a domain.com/directory, se supone que debe mostrar domain.com/directory/index.php pero index.php no aparece y solo muestra una página de error 404.
problema con la solución 2:
si vas a domain.com/directory/page/haha-lol-blah-blah, aparece la página domain.com/directory/page, sin importar lo que haya después de la página.
¿Hay una solución para ambos problemas?
esto es lo que necesito:
domain.com/directory -> shows the page: domain.com/directory/index.php domain.com/directory/page -> shows the page: domain.com/directory/page.php domain.com/directory/page/haha-lol-blah-blah -> invalid page (404)Creo que esto está funcionando ahora con este código:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.phpPruébalo así,
#incoming request neither a file nor a directory RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+?)$ $1.php [L]