メンテナンスページで失敗しやすい3つのポイント

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">

運用に関するノウハウは蓄積していくものですので、これからもご紹介していきたいと思います。

カヤックでは、開発から運用まで幅広くこなせるエンジニアを募集しています