.htaccess すべて自サイトのひとつのページにリダイレクトさせる

apache logo Apache

apache logo

状況

サイト移転などを行い、古いサイトにアクセスされた際、どのページにアクセスされても、

「このサイトは新しいサイトに移転しました。移転先の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で指定すること。

 

参考にしたサイト

Webサイトのメンテナンス中画面を出す正しい作法と.htaccessの書き方

 

コメント

タイトルとURLをコピーしました