サーバー作業やサイト更新の際、一時的にページを停止したい場面があります。そのまま公開した状態で作業を進めると、更新途中の画面が見えてしまったり、利用者が正常に使えない状態に当たってしまうことがあります。
そのようなときに役立つのが、メンテナンス中ページの表示です。.htaccessを使えば、通常のページを一時的に止めて、専用の案内ページを表示させることができます。このページでは、初心者向けに基本の考え方と設定方法を分かりやすく解説します。
この記事で分かること
メンテナンス中ページとは、サイトの更新や移転、システム調整などを行っている間に、利用者へ一時停止中であることを案内するためのページです。
通常のページが中途半端な状態で見えてしまうのを防ぎ、「現在作業中です」「しばらくしてから再度ご利用ください」といった案内を表示できるため、利用者にも状況が伝わりやすくなります。
よくある利用場面
サイト移転、システム更新、データベース作業、フォーム調整、大きなデザイン変更の公開前確認などで使われます。
Apache系サーバーでは、.htaccessとリライト設定を使って、メンテナンスページへ切り替える方法がよく使われます。基本例は次のようになります。
ErrorDocument 503 /maintenance.html
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^.*$ - [R=503,L]
この設定では、通常のアクセスに対して 503 を返し、そのときに /maintenance.html を表示させます。
メンテナンス中の表示では、単に別ページへ転送するのではなく、503 Service Unavailable を使う方法が一般的です。503は「一時的に利用できない状態」であることを示すステータスです。
これにより、利用者だけでなく検索エンジンにも「恒久的な削除ではなく、一時的な停止である」と伝えやすくなります。
メンテナンス表示では、301や302ではなく、503を使うほうが目的に合っています。
上の設定例では、/maintenance.html という案内ページをあらかじめ作成しておく必要があります。このファイルには、メンテナンス中であること、再開見込み、必要に応じて問い合わせ先などを記載します。
内容はシンプルでもかまいませんが、何が起きているかが分かる文章を入れておくと親切です。
案内文の例
「現在メンテナンス中のため、一時的にご利用いただけません。しばらくしてから再度アクセスしてください。」のような形が分かりやすいです。
メンテナンス中でも、作業者だけは通常のページを確認したいことがあります。その場合は、自分のIPアドレスを除外して設定します。
ErrorDocument 503 /maintenance.html
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^203\.0\.113\.10$
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^.*$ - [R=503,L]
この例では、203.0.113.10 からのアクセスだけは通常表示のままにし、それ以外のアクセスには503を返します。
IPアドレスは利用環境によって変わることがあります。固定IPでない場合は、後で確認できなくなることがあるため注意が必要です。
作業担当者が複数いる場合は、複数のIPを除外することもできます。たとえば次のように条件を追加します。
ErrorDocument 503 /maintenance.html
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^203\.0\.113\.10$
RewriteCond %{REMOTE_ADDR} !^198\.51\.100\.25$
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^.*$ - [R=503,L]
このように書けば、指定した複数の接続元からだけ通常ページを確認できます。
メンテナンス設定では、案内ページ自身まで止めてしまわないことが大切です。そのため、/maintenance.html はリライト対象から除外する必要があります。
また、画像やCSSもメンテナンスページで使う場合は、それらまでまとめて止めてしまうと表示が崩れることがあります。必要に応じてメンテナンス用ファイルの置き場所や除外条件を調整します。
除外設定が足りないと、メンテナンスページ自身にも503がかかってしまい、正しく表示されないことがあります。
とくに作業終了後に元へ戻し忘れると、サイトがずっと停止状態のままになるため注意が必要です。
| 場面 | 向いている理由 |
|---|---|
| サイト移転 | データの切り替え中に利用者へ案内しやすくなります。 |
| フォーム調整 | 送信途中の不整合を避けやすくなります。 |
| 大規模更新 | 中途半端な表示を見せずに作業できます。 |
| 短時間の保守 | 一時停止であることを明確に伝えやすいです。 |
.htaccessを使えば、サイトの更新や保守の際に、メンテナンス中ページを一時的に表示させることができます。503ステータスを使うことで、一時停止中であることを利用者や検索エンジンへ伝えやすくなります。
作業者だけ通常表示にする設定も可能ですが、IP指定ミスや戻し忘れには注意が必要です。実際の作業前には、必ずバックアップを取り、短時間で確認しながら進めると安心です。