Как создать страницу ошибок Apache для перенаправленного Zope
У меня есть несколько виртуальных хостов, которые перенаправляют на процессы сервера 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 "Служба временно недоступна".
Документы об ошибках читаются по всему миру; каталоги являются исполняемыми во всем мире.
Что я могу сделать, чтобы запустить страницу с ошибкой? Есть что-то особенное, чтобы рассмотреть из-за mod_rewrite?
1 ответ
Я наконец нашел решение (на этой странице); действительно, проблема была связана с переписыванием. Я изменил свой виртуальный хост так:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/error-50[0-3].html$
RewriteRule ^/(.*) http://localhost:8080/...
(в моем случае я получаю статус 503, когда Zope не работает; мое состояние готово и к более конкретным сообщениям).
Поскольку Apache до этого момента не нуждался в обслуживании статического контента, мне нужно было включить модуль mime; в моем случае:
cd /etc/apache2/mods-enabled
ln -s ../mods-available/mime.load .