我正在寻找覆盖的方式 ErrorDocument 503 如果发生某种情况。
方案:
当我在系统中手动创建文件标志时(出于维护目的)
touch / var / state / technical
此次切断对“后端”的调用,抛出 HTTP 503 - 这是完美的。
Vhost apache代码:
ErrorDocument 503 /some_error_page.html
RewriteCond /var/state/technical -f
RewriteRule ^/some_page.* http://127.0.0.1:1/ [P]
这就像魅力,但我无法区分
503 - 关于“后端”失败
和
503 - 关于“技术”维护
我现在的研究:
您可以在LocationMatch上更改ErrorDocument:
<LocationMatch ^/some_url(.*)>
ErrorDocument 503 /technical_page.html
</LocationMatch>
“理想单词”的作用如下:(这是糟糕的apache语法)
RewriteCond /var/state/technical -f
ErrorDocument 503 /technical_page.html
现在:
RewriteCond /var/state/technical -f
RewriteRule .* http://127.0.0.1:80/technical_page.html [PT]
有效,但返回了
HTTP 200 响应代码。
如果我可以在此处覆盖响应代码,这就足够了。
我不能使用简单的重定向R = 503
RewriteRule !^/error|ping/.* /technical.html [PT,R=503]
因为它会显示默认的503错误页面( ErrorDocument 503 /some_error_page.html)
有什么建议吗? APACHE2.2