.htaccessで公開期間限定のページを作ってみた。

2022年04月15日 12時00分 正午の月齢:14.2  月名:十五夜  潮汐:大潮 月齢:14.2[十五夜] 潮汐:大潮
6か月前に投稿 | ウェブ・IT関係 | コメントはありません

4分ぐらいで読めます。

社内で期間限定で公開したいページがあって、手動でやればもちろん可能ではあるんですけど、せっかくなので自動化したいなと思い、.htaccessを使ってできないかな、と調べてみました。

まず見つかったのが「.htaccess - システム日付・時刻変数 - date and time」。

# Rewriteエンジンを起動
RewriteEngine On

# 期間限定のページを開設する例
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY} > 20150101
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY} < 20150102
RewriteRule ^(.*)$ /HappyNewYear.html [L]

指定した期間について、指定したパスに飛ばしてくれる感じでしょうか。ただどうもこの書き方では思っていたのとは違うような。

ということでさらに調べてみると「.htaccessで指定時間になったらメンテナンス画面を表示する」が見つかりましたー。

 ErrorDocument 503 /maintenance.html

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} ">201903062359"
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} "<201903070300"
RewriteCond %{REQUEST_URI} !=/maintenance.html

RewriteRule ^.*$ - [R=503,L]
</IfModule>

指定した期間について、503エラーを出して、指定したページに飛ばすっていう感じの動きです。このとき飛ばし先のパス(この引用例では「maintenance.html」)というのがブラウザ上は出てこないので、直接URLをたたいてアクセスされる可能性もかなり低くなりそうな気がします。

さっそくこれを応用して、「2022年4月1日から2022年4月30日までの毎日10時00分から22時00分まで限定でextra.htmlを公開」という内容で書いてみました。

#期間限定ここから
ErrorDocument 503 /extra.html
<IfModule mod_rewrite.c>
RewriteEngine On

#日付
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY} ">20220331"
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY} "<20220501"

#時間帯
RewriteCond %{TIME_HOUR}%{TIME_MIN} ">0959"
RewriteCond %{TIME_HOUR}%{TIME_MIN} "<2201"

RewriteCond %{REQUEST_URI} !=/extra.html

RewriteRule ^.*$ - [R=503,L]
</IfModule>
#期間限定ここまで

ま、私生活においては日付や時間帯で制限するような内容なんて全然ないんですけど、ビジネスにおいては知っておくと便利な技かな、と思います。

古い記事・新しい記事

古い記事 [2022年03月18日]
新しい記事 [2022年05月04日]

コメントはありません »

[RSS on this post] [TrackBack URI]

コメントをどうぞ

Translate »