.htaccess

サイトメンテナンス中のメッセージページを表示する

投稿日:

こちらの記事の続きです。

サイトメンテナンス中に出すべきHTTPステータスコードについて

指定ipアドレス以外からのアクセスを拒否する(ロリポップサーバーの場合)

でアクセス制限をした場合「403エラー」が表示されました。

403エラーとは「アクセス禁止」を示すコードです。

アクセス禁止であることは間違い無いのですが、「なぜアクセスできないか」までは表現できていません。

今回は「サイトメンテナンス」、つまり「サービス利用不可」である「503エラー」を示すのが一番良いということになります。

ロリポップサーバーで503エラーを表すには

ロリポップサーバーは初心者に優しい設計となっています。

そのため代表的なエラーコードに対しては、「ユーザー専用ページ」で設定をするだけで「独自に準備したエラー画面」を表示できます。

https://lolipop.jp/manual/user/err-page/

エラーページ変更 / サーバー・プログラム / マニュアル - レンタルサーバーならロリポップ!

ただ、見てみると今回使用したい「503エラー」はなさそうです。

そこで.htaccessを記述し、アップロードすることで「503エラー」表示をすることにします。

サイトメンテナンス中を示す.htaccessの書き方

ErrorDocument 503 /err/503.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/err/503.html
  RewriteCond %{REMOTE_ADDR} !=管理者ipアドレス
  RewriteRule ^.*$ - [R=503,L]
</IfModule>

一行目 503エラーだったら errフォルダの503.html を表示してくださいの意味です。

三行目以降は「mod_rewrite モジュール」と呼ばれるものでURLを書き換えています。

  1. エラー用に用意したページではなく
  2. 管理者でも無い場合

503エラーですよとコンピュータ側に教えつつ、人間に対しては503.htmlを表示する、というような記述です。

リダイレクトループに注意

ErrorDocument 503 /err/503.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/err/503.html
  RewriteCond %{REMOTE_ADDR} !=管理者ipアドレス
  RewriteRule ^.*$ - [R=503,L]
</IfModule>

上記5行目

の部分を記述しないとリダイレクトループ、いわゆる無限ループになります。

そうするとサーバー高負荷としてエラーになってしまうので注意です。

https://webtan.impress.co.jp/e/2009/06/16/5880

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







-.htaccess
-, ,

Copyright© めもろぐノート , 2024 All Rights Reserved Powered by STINGER.