状況
サイト移転などを行い、古いサイトにアクセスされた際、どのページにアクセスされても、
「このサイトは新しいサイトに移転しました。移転先のURLは…5秒後にジャンプします」
みたいなページにリダイレクトさせたい場合など
やり方 – 1 非推奨
みたくする。
4行目の
RewriteRule ^「移転されました」ページ.html$ – [L]
の記述が無いと、
mod_rewrite 502 リダイレクトが繰り返し行われています
エラーになる。
やり方 – 2 推奨
どのページにアクセスしても一時的にメンテナンスページに飛ばす。
503にしとかないとSEO的にマズイ。
動作としては、8行目で503にリダイレクトさせると、1行目で定義したmaintenance.htmlに飛ぶ。
メンテナンス中に動作確認したい場合は、7行目のコメントを外して、「172.18.0.3」の部分をメンテナンスページに飛ばしたくない人のIPアドレスに変える。(IPアドレス縛りでアクセス制限)
やり方 − 2 の、注意点1
1行目、5行目、6行目のファイルパスを間違えるとServer Errorになる。
やり方 − 2 の、注意点2
maintenance.html の中で、画像ファイルを使うために「/maintenance/asset/img/logo.jpg」を指定している。
だから6行目で画像ファイルも許可しているんだけど、
maintenance.html の中で、画像ファイルのPathを「asset/img/logo.jpg」などと相対Pathで指定すると、画像が表示されない。絶対Pathで指定すること。
500番台のHTTPステータスって、サーバーエラーって意味じゃないっけ!?(後日追記)
久々にこの記事をチェックして、推奨コードを見てみたんだが、503のHTTPステータスってサーバーエラーな意味では?それでSEO的にほんとにいいのか?
と思って調べた。
結論としては、503のママで問題ない。
ChatGPT3.5先生のご回答:
HTTPステータスコード: メンテナンス中のページを表示する際に、HTTPステータスコード503 (Service Unavailable) を返すことが推奨されます。これにより、検索エンジンは一時的なメンテナンスを認識し、インデックスから削除しないようになります。
Google AI 先生のご回答:
503エラーは、サーバー側のエラーを示すHTTPステータスコードです。503エラーは、Webサーバーがメンテナンス中や、Webサーバーへの同時アクセス数の制限を超えた場合に発生します。
503は正式にメンテナンスを示すコードなんですな。
今日も一つ賢くなりましたな。
参考にしたサイト
Webサイトのメンテナンス中画面を出す正しい作法と.htaccessの書き方
コメント