Apache-2.2

如何為重定向的 Zope 創建 Apache 錯誤頁面

  • June 28, 2012

我有一些虛擬主機重定向到 Zope 伺服器程序:

RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/http/%{HTTP_HOST}:80/theroot/VirtualHostRoot/$1 [L,P]

當然,如果 Zope 程序沒有執行,重定向就會失敗。這可能發生在實例重新啟動期間(例如更新),或者發生在不應該一直執行的開發/測試實例中。在這種情況下,我想有一個友好的資訊。

因此,出於錯誤處理的唯一目的,我定義了一個 DocumentRoot:

DocumentRoot /var/zope-instances/my-instance/htdocs
ErrorDocument 500 /error-500.html
ErrorDocument 503 /error-500.html

不幸的是,它不起作用;在 Zope 關閉時嘗試頁面時,Apache 告訴我:

由於維護停機或容量問題,伺服器暫時無法滿足您的請求。請稍後再試。

此外,在嘗試使用 ErrorDocument 處理請求時遇到 503 Service Temporarily Unavailable 錯誤。

錯誤文件是世界可讀的;這些目錄是全球可執行的。

我該怎麼做才能讓錯誤頁面執行?由於 mod_rewrite,有什麼特別需要考慮的嗎?

我終於找到了解決方案(在此頁面);實際上,問題與重寫有關。我像這樣修改了我的虛擬主機:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/error-50[0-3].html$
RewriteRule ^/(.*) http://localhost:8080/...

(在我的情況下,當 Zope 關閉時,我得到狀態 503;我的情況也準備好接收更具體的消息)。

由於到目前為止 Apache 不需要提供靜態內容,因此我需要啟用 mime 模組;就我而言:

cd /etc/apache2/mods-enabled
ln -s ../mods-available/mime.load .

引用自:https://serverfault.com/questions/402320