重写"网站关闭"页面的规则

Pau*_*jan 5 apache mod-rewrite maintenance

我试图安装此.htaccess以通知我的用户网站维护.似乎第一个[L]不起作用,第二个重写正在做所有事情.

你们如何做网站维护信息?

RewriteEngine on

RewriteRule ^s/down$ index.html [L]
RewriteRule ^(.*)$ http://metaward.com/s/down [R=302,L]
Run Code Online (Sandbox Code Playgroud)

Gum*_*mbo 6

您不需要外部重定向.只需发送503状态代码和错误文档即可.

RewriteCond %{ENV:REDIRECT_STATUS} !=503
RewriteRule ^(.*)$ /503.html [R=503,L]
ErrorDocument 503 /503.html
Run Code Online (Sandbox Code Playgroud)

但是你需要Apache 2.x使用不同于3xx的R标志的不同状态代码.

  • 将"ErrorDocument 503 /down/index.html"添加到设施自定义503消息.添加"Alias/down/var/somewere/down"以共享消息页面 (4认同)

Pau*_*jan 5

这似乎工作(但我必须在PHP中设置状态代码)

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/static/.*$
RewriteCond %{REQUEST_URI} !^/media/.*$
RewriteRule .* down.php [L]
Run Code Online (Sandbox Code Playgroud)

并在down.php

<?php
header('HTTP/1.1 503 Service Temporarily Unavailable',true,503);
?>
Run Code Online (Sandbox Code Playgroud)

这有什么问题吗?我主要担心的是用户看到的内容(这就是我保留静态内容的原因)和搜索引擎看到的内容(503状态代码).