サイトメンテナンスする場合
# maintenance
ErrorDocument 503 /maintenance.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.php
RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx
RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx
...
RewriteRule ^.*$ - [R=503,L]
</IfModule>
特定のIPをアクセス不可にする場合
# AccessControl IP/HOST
order allow,deny
allow from all
deny from xxx.xxx.xxx.xxx
deny from xxx.xxx.xxx.xxx
...
サイト転送する場合はサイトメンテナンスで表示する HTML は下記のようにする。
この方法を用いる場合は、200ステータスを返し、301や302といったステータスを与えることができないため、そのステータスがほしい場合は.htaccess でリダイレクトさせたほうがいい(秒数の指定はできないが)。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="format-detection" content="telephone=no, email=no, address=no" />
<title>○○○</title>
<meta name="description" content="Webサイトを移転しました。" />
<meta http-equiv="refresh" content="30;URL=https://example.com" />
<link rel="canonical" href="https://example.com" />
</head>
<body>
<p>Webサイトを移転しました。<br />30秒後に自動的に転送されますが、転送されない場合、以下のリンクを押してください。</p>
<p><a href="https://example.com">https://example.com</a></p>
<script>
setTimeout(function() {
location.href = 'https://example.com';
}, 1000 * (30 + 2));
</script>
</body>
</html>