htaccess 重定向錯誤頁面

htaccess 重定向錯誤頁面

我知道這是一個常見問題,但我不確定為什麼這會在我的本地主機(WAMP)上失敗。

我想將 500 錯誤重定向到我的登入頁面。我已經嘗試過以下方法:

  • ErrorDocument 500 http://localhost/mysite/login.php
  • ErrorDocument 500 C:/wamp64/www/mysite/login.php
  • ErrorDocument 500 mysite/login.php
  • ErrorDocument 500 login.php

其中每一個都無法重定向到我的登入頁面。

答案1

我正在用 PHP 測試一些東西。我想確認如果已停用錯誤報告會發生什麼。正如預期的那樣,我收到了 500 錯誤。我想使用 htaccess 為此配置重定向

您無法定義 ErrorDocument 來.htaccess處理此問題。

display_errors當關閉並且應用程式中發生不可恢復的錯誤時,PHP 本身將返回空的 500 回應。

要自訂/處理此回應,您需要定義自己的自訂 PHP 錯誤處理程序。 https://www.php.net/manual/en/book.errorfunc.php

(但請注意,如果您有致命的解析錯誤在你的腳本中,那麼你的錯誤處理程序可能仍然不會被調用 - 但這永遠不會在生產伺服器上發生。

您能指出一些相關的文件嗎?

不幸的是,我對此沒有一個中心參考點。這真的就是它的工作方式......

只有當 Apache 本身觸發錯誤回應時,才會觸發 Apache ErrorDocument。 (儘管自訂的 500 ErrorDocument 不會被觸發全部Apache 500 回應以及在後期定義的它.htaccess可能根本不會捕捉太多內容。這應該在伺服器配置/虛擬主機中定義。

為了在 PHP 發送回應時觸發 Apache ErrorDocument,Apache 需要攔截並覆蓋回應 - 但這種情況不會發生。就像您可能從 PHP 腳本發送 404 一樣,Apache 不會攔截此訊息來發送 Apache 404 回應。

相關內容