Webサイトの新規開設等の準備段階で「メンテナンスページを503として表示させたい、 Let’s Encrypt によるSSL証明書導入の設定もしたい」というケースの .htaccess
のスニペットです。
ErrorDocument 503 /maintenance.html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteCond %{REQUEST_URI} !\.(css|js|jpg|gif|png|svg|ico|xml|otf|ttf|woff|woff2)$
RewriteCond %{REQUEST_URI} !(^/.well-known/)
RewriteRule ^.*$ - [R=503,L]
</IfModule>
<IfModule mod_headers.c>
Header set Retry-After "Tue, 1 Mar 2022 12:00:00 GMT"
</IfModule>
例えばこんなイメージ。各行を開設すると以下のような感じです。
ErrorDocument 503 /maintenance.html
: 503 エラー用のページはmaintenance.html
- 条件指定
RewriteCond %{REQUEST_URI} !=/maintenance.html
: メンテナンスページ (maintenance.html
) は除くRewriteCond %{REQUEST_URI} !\.(css|js|jpg|gif|png|svg|ico|xml|otf|ttf|woff|woff2)$
: cssやjs, 画像, フォント等のページ表示に必要なリソースは除くRewriteCond %{REQUEST_URI} !(^/.well-known/)
: Let’s Endrypt でアクセスされる/.well-known/
以下のディレクトリは除くRewriteRule ^.*$ - [R=503,L]
: 上述3つの条件のいずれも満たさないページへのアクセスは 503 (=maintenance.html
)へ
Header set Retry-After "Tue, 1 Mar 2022 12:00:00 GMT"
: 2022/3/1 12時(GMT) 公開予定
これでひとまず準備できるのではないでしょうか。