PCサイトの開発/運用から、モバイルサイトの開発に移りつつある渡邊です。
ECサイトや自社サービスを運用していると、サービスを一時停止しなければならないケースがあります。
そんな時はメンテナンスページを用意して、ユーザーにサービスが一時停止していることを伝えます。
しかし、メンテナンスページには意外と気が付きにくい失敗の罠が潜んでいます。
今回はその失敗しやすい3つのポイントをフォローします。
1. mod_rewriteを使ってみよう
アプリケーションごとにメンテナンスページへのリダイレクトの設定を行うと、
設定の漏れや確認不足による不具合が発生することがあります。
.htaccess に以下のような設定を行うだけで、http://test.domain.com/ 以下が、
全て http://test.domain.com/maintenance.html へリダイレクトされます。
RewriteEngine On
RewriteCond %{REQUEST_URI} !\maintenance.html$
RewriteRule ^(.*) /maintenance.html [R,L]
2. 全てのコンテンツをリダイレクトさせないようにしよう
上記のmod_rewriteの設定だと、画像やAPIなどのアクセスも全てメンテナンスページにリダイレクト
されるため、外部の画像が表示されなかったり、ブログパーツが動作しなくなることになります。
以下のmod_rewriteの設定は、画像やAPIへのアクセスも許可しています。
また、mod_rewriteではIPの設定も可能です。
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.css$
RewriteCond %{REQUEST_URI} !\.js$
RewriteCond %{REQUEST_URI} !\.jpg$
RewriteCond %{REQUEST_URI} !\.gif$
RewriteCond %{REQUEST_URI} !\.png$
RewriteCond %{REQUEST_URI} !\.swf$
RewriteCond %{REQUEST_URI} !\api/news/get$
RewriteCond %{REQUEST_URI} !\api/blogparts/get$
RewriteCond %{REQUEST_URI} !\maintenance.html$
RewriteCond %{REMOTE_ADDR} !{192.168.*.*}
RewriteRule ^(.*) /maintenance.html [R,L]
3. メンテナンスページは検索エンジン(クローラー)の対象から外そう
メンテナンスページは一時的ではありますが、検索エンジンにインデックスされやすくなるので、
以下のようなメタタグを利用したり、robots.txtを用意して、メンテナンスページ用の対応を事前に行いましょう。
<META NAME="robots" CONTENT="noindex">
<META NAME="robots" CONTENT="nofollow">
運用に関するノウハウは蓄積していくものですので、これからもご紹介していきたいと思います。