Apache覆盖ErrorDocument + RewriteCond(或LocationMatch)

时间:2015-02-19 10:50:08

标签: apache mod-rewrite response apache2.2 errordocument

我正在寻找覆盖的方式 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

0 个答案:

没有答案