.htaccess “站点关闭”页面的重写规则

5gfr0r5j  于 2022-11-16  发布在  其他
关注(0)|答案(5)|浏览(134)

我试着安装这个.htaccess来通知我的用户网站维护。看起来第一个[L]不工作,第二个重写做的一切。
你们是怎么做网站维护留言的?

RewriteEngine on

RewriteRule ^s/down$ index.html [L]
RewriteRule ^(.*)$ http://metaward.com/s/down [R=302,L]
gajydyqb

gajydyqb1#

这看起来是可行的(但是我必须在PHP中设置状态代码)

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/static/.*$
RewriteCond %{REQUEST_URI} !^/media/.*$
RewriteRule .* down.php [L]

以及down.php中的

<?php
header('HTTP/1.1 503 Service Temporarily Unavailable',true,503);
?>

有什么问题吗?我主要关心的是用户看到什么(这就是为什么我保持静态内容)和搜索引擎看到什么(503状态码)。

wsxa1bj1

wsxa1bj12#

当我想关闭网站进行维护时,我在网站上使用的重写规则是:

RewriteCond %{REMOTE_ADDR} !=MY_IP_ADDRESS
RewriteRule    ^$  /down.html  [L]
RewriteCond %{REMOTE_ADDR} !=MY_IP_ADDRESS
RewriteRule    [^/down.html$]  /down.html  [L]
  • (也许不是很“优化”,我应该说...但它的工作(或似乎)每次我使用这些)*

除了down.html之外的所有内容都被重定向到down.html --当然除了我:显然,我希望能够测试正在执行的维护操作
当我完成的时候,我只是评论这四行。

jexiocij

jexiocij3#

我使用Apache作为ruby on Rails应用程序代理。
我唯一要做的就是

ProxyPass /custom-errors !
ErrorDocument 503 /custom-errors/maintenance-message.html

到我的httpd.conf,并确保:[Apache安装]/htdocs/自定义错误/维护消息.html已存在。

mpgws1up

mpgws1up4#

我没有看到任何人使用Retry-After头。我读过(但没有链接了,因为我读了一段时间前),你应该使用一个503组合与一个Retry-After n(n =重试的秒数; 3600是一个小时)的标题。如果你使用503和重试后组合,特别是在你的robots.txt/sitemap它不应该混乱的链接和页面排名搜索引擎优化,如果你不离开这样很长一段时间。

g2ieeal7

g2ieeal75#

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

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

但是,您需要Apache 2.x来使用带有R标志而不是3xx的不同状态代码。

相关问题