将除页面之外的所有页面重定向到错误503自定义页面

时间:2015-09-25 08:52:47

标签: apache .htaccess mod-rewrite errordocument

对于apache服务器的htaccess导致我的所有IIS服务器都将停机维护。我需要将所有内容重定向到错误503自定义页面并返回503错误,但我不知道正确的解决方案。

RewriteEngine on
RewriteBase /

ErrorDocument 503 /503.html

RewriteRule ^.*$ - [L,NC,R=503]

这个结果:(响应不是我的自定义响应)

Service Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

另一次尝试:

RewriteEngine on
RewriteBase /

ErrorDocument 503 /503.html

RewriteRule ^(?!503.html)$ - [L,NC,R=503]

给我我需要的东西,但只是为了www.domain.com而且每个其他页面都给我404(除了www.domain.com/503.html,它给了我200)。

所以我需要的是将每个页面重定向到domain.com/503.html到自定义503错误页面,并返回错误代码。

2 个答案:

答案 0 :(得分:1)

您在第二个规则集中使用了两个锚点。这很简单:

RewriteEngine on
RewriteBase /

ErrorDocument 503 /503.html

RewriteRule ^(?!503.html).* - [R=503,L,NC]

答案 1 :(得分:1)

你可以使用否定:

RewriteEngine on

ErrorDocument 503 /503.html

RewriteRule !^503\.html$ - [L,NC,R=503]