使用 .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這邊走。

這可以使用以下命令進行控制接受路徑資訊環境。

相關內容