使用 .htaccess 重定向无效路径(例如“home.php/xyz”)

使用 .htaccess 重定向无效路径(例如“home.php/xyz”)

我在本地服务器上运行Apache 2.4.2。我的网站.htaccess文件如下:

DirectoryIndex home.php
Options -Indexes
ErrorDocument 404 /404.php

当您尝试访问浏览器中不存在的文件时,此方法可以很好地显示 HTTP 404 页面,但在使用以下语法访问现有文件时不会显示错误页面:

http://localhost/<FileName>.php/<AdditionalCharacters>

例如,如果我转到home.php/xyzhome.php页面会加载,但 HTML 中的所有相关链接都会损坏。我的服务器上没有目录home.php!发生了什么?

我可以向文件中添加指令或规则.htaccess来停止此行为并引发 HTTP 404 错误吗?

答案1

此功能称为“path_info”,通常用于从单个 CGI 脚本运行整个网站(当没有更好的替代方案(例如 mod_rewrite)时)。

如果 URL 导致 CGI 脚本被视为目录,Apache 将正常运行该脚本,但会在PATH_INFO环境变量中为其提供额外的路径组件。许多 wiki 引擎都使用此功能 - 例如,您可以访问https://wiki.archlinux.org/index.php/Beginners%27_Guide/Preparation这边走。

这可以使用接受路径信息环境。

相关内容