.png)
Estoy ejecutando Apache 2.4.2 en mi servidor local. El archivo de mi sitio web .htaccess
es el siguiente:
DirectoryIndex home.php
Options -Indexes
ErrorDocument 404 /404.php
Esto funciona muy bien para mostrar una página HTTP 404 cuando intenta acceder a un archivo inexistente en el navegador, pero no muestra la página de error al acceder a archivos existentes utilizando la siguiente sintaxis:
http://localhost/<FileName>.php/<AdditionalCharacters>
Por ejemplo, si voy a home.php/xyz
, la home.php
página se carga, pero todos los enlaces relativos en el HTML están rotos. ¡No tengo un home.php
directorio en mi servidor! ¿Qué está sucediendo?
¿Existe alguna directiva o regla que pueda agregar a mi .htaccess
archivo para detener este comportamiento y generar un error HTTP 404?
Respuesta1
Esta es una característica llamada "path_info" y se usa comúnmente para ejecutar sitios web completos desde un único script CGI (cuando mejores alternativas, como mod_rewrite, no están disponibles).
Si la URL hace que un script CGI sea tratado como un directorio, Apache ejecutará ese script normalmente pero le dará los componentes de ruta adicionales en la PATH_INFO
variable de entorno. Muchos motores wiki utilizan esta característica; por ejemplo, puedes accederhttps://wiki.archlinux.org/index.php/Beginners%27_Guide/PreparationPor aquí.
Esto se puede controlar mediante elAceptarPathInfoconfiguración.