【コピペ用】.htaccessでサイトをメンテナンス中にして特定IPからのアクセス(自分)だけアクセス可能にする方法

Webサイトのリニューアルやメンテナンス中に、「他のユーザーにはメンテナンス中のメッセージを表示したいけど、自分はメンテナンス中のサイトにアクセス可能にしたい」場合があります。コピペで簡単に実現できるようにブログ記事にしておきます。

ルートフォルダに「503.html」を作る

<!DOCTYPE html>
<html lang="ja">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<title>503 Service Temporary Unavailable</title>
	</head>
	<body>
		<h1>503 Service Temporary Unavailable</h1>
		<p>メンテナンス中です。</p>
	</body>
</html>

自分のIPアドレスを調べる

このページにアクセスすると自分のIPを調べることが出来ます。

自分のIPを確認する場合はこちら(ip.cgi)

こちらのサイトでも確認できます。

あなたが現在インターネットに接続しているグローバルIPアドレス確認

同じフォルダの.htaccessの先頭にコピペ

※下記の「192.168.0.2」のところを、上記で調べた自分のIPにします。

ErrorDocument 503 /503.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/503.html
  RewriteCond %{REMOTE_ADDR} !=192.168.0.2
  RewriteRule ^.*$ - [R=503,L]
</IfModule>

アップロード

htaccess-and-503-html

確認

  1. アクセスしてみて、サイトにアクセスできるかどうか確認します。
  2. また、スマホからアクセスするなど、別のIPからアクセスしてみて、503.htmlの内容が表示されているかどうか確認します。
503

参考情報(https転送も追加したい場合)

.htaccessにHTTPS転送を追加します。

※下記の「192.168.0.2」のところを、上記で調べた自分のIPにします。

ErrorDocument 503 /503.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/503.html
  RewriteCond %{REMOTE_ADDR} !=192.168.0.2
  RewriteRule ^.*$ - [R=503,L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

以上です。参考になれば幸いです。

質問・コメントなどあると嬉しいです