サイトへの全アクセスを特定ページに転送する方法

時限的なサイトの運営でよくあるのが、閉鎖時に「サイトのどのページにアクセスされても、『サービス終了のお知らせ』ページを表示させたい」という要件。具体例を出すと、

http://www.hoge.com/aaa/index.html
http://www.hoge.com/ccc/ddd/index.php

こういったHTTPリクエストに対して、常に

http://www.hoge.com/close.html

を表示させるというもの。

様々な方法があるとは思うのだけれども、個人的に常用しているのは、Apacheのmod_rewriteを使った方法。なぜ常用しているかと言うと、Apache以外のWebサーバーを運用したことが無いから。

以下、その方法。

施策は超イージー。

RewriteEngine On
RewriteRule (.*) http://www.hoge.com/close.html [L]

ただし、たとえば close.html 内で画像とかCSS等の外部ファイル読み込みを行っている場合、それらのリクエストまで転送されてしまうので、よろしくない。今どき画像のリンク切れはカッコ悪い。そういう場合は、以下のような条件文を追加する。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !\.(js|css|gif|png|jpe?g)$ [NC]
RewriteRule (.*) http://www.hoge.com/close.html [L]

こんな感じで大丈夫のはず。お疲れさまでした。

このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/427