Apache-2.2
將錯誤 400 錯誤請求重定向到自定義頁面時出現問題
我已將
.htaccess
文件編輯為以下內容:ErrorDocument 404 /index.php?page=page-not-found ErrorDocument 400 /index.php?page=bad-request
現在錯誤 404 正確重定向,但是如果我輸入像
http://example.com/%22%%5E$%%5E&%C2%A3&
伺服器這樣的地址,則不會重定向 400 錯誤,而是顯示預設的 apache 消息。我究竟做錯了什麼?
來自Apache 文件的引用:
儘管可以覆蓋大多數錯誤消息,但在某些情況下,無論 ErrorDocument 的設置如何,都會使用內部消息。特別是,如果檢測到格式錯誤的請求,將立即停止正常的請求處理並返回內部錯誤消息。這對於防止由錯誤請求引起的安全問題是必要的。
因此,如果您想要重定向錯誤 400,您應該取消註釋Apache 配置文件中的
ErrorDocument
指令,httpd.conf
如下所示:# Some examples: #ErrorDocument 500 http://foo.example.com/cgi-bin/tester ErrorDocument 400 /cgi-bin/bad_request.pl #ErrorDocument 401 /subscription_info.html #ErrorDocument 403 "Sorry can't allow you access today"
並重新啟動 Apache 伺服器。