この.htaccessをインストールして、ユーザーにサイトのメンテナンスを通知しようとしました。最初の[L]が機能しておらず、2番目の書き換えがすべてを行っているようです。
サイトメンテナンスメッセージはどのように行いますか?
RewriteEngine on
RewriteRule ^s/down$ index.html [L]
RewriteRule ^(.*)$ http://metaward.com/s/down [R=302,L]
この.htaccessをインストールして、ユーザーにサイトのメンテナンスを通知しようとしました。最初の[L]が機能しておらず、2番目の書き換えがすべてを行っているようです。
サイトメンテナンスメッセージはどのように行いますか?
RewriteEngine on
RewriteRule ^s/down$ index.html [L]
RewriteRule ^(.*)$ http://metaward.com/s/down [R=302,L]
外部リダイレクトする必要はありません。503ステータスコードとエラードキュメントを送信するだけです。
RewriteCond %{ENV:REDIRECT_STATUS} !=503
RewriteRule ^(.*)$ /503.html [R=503,L]
ErrorDocument 503 /503.html
ただし、3xx以外のRフラグで別のステータスコードを使用するには、Apache2.xが必要です。
これはうまくいくようです(ただし、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 ステータス コード) です。
メンテナンスのためにウェブサイトをシャットダウンしたいときにウェブサイトで使用しているRewriteRulesは次のとおりです。
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にリダイレクトされます-もちろん、私を除いて:私が行っているメンテナンス操作をテストできるようにしたいのは明らかです
そして、私が終わったとき、私はそれらの4行にコメントするだけです。
Retry-After ヘッダーを使用している人はいません。Retry-After n (n = 再試行する秒数; 3600 は 1 時間) ヘッダー。503 と Retry-After を組み合わせて使用する場合、特に robots.txt/sitemap で、長い間そのままにしておかなければ、SEO のリンクとページ ランクが台無しになることはありません。