Apache-2.2
如何為重定向的 Zope 創建 Apache 錯誤頁面
我有一些虛擬主機重定向到 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 .