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

Redirect all but one page to error 503 custom page

用于 apache 服务器的 htaccess,因为我所有的 IIS 服务器都将在维护时关闭。我需要将所有内容重定向到错误 503 自定义页面以及 return 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)。

所以我需要的是重定向除域之外的所有页面。com/503。html 到自定义 503 错误页面以及 return 错误代码。

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

RewriteEngine on
RewriteBase /

ErrorDocument 503 /503.html

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

可以使用否定:

RewriteEngine on

ErrorDocument 503 /503.html

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