Apacheで複数指定したスケジュールで複数指定したページをリダイレクトさせる

Apache Linux OS別 wwwサーバー アプリケーション別 サーバー

広報:齊藤 メイ 広報:齊藤 メイ

Posted on 2016年12月15日(木)10:12


Apacheで複数指定したスケジュールで複数指定したページをリダイレクトさせる

3日後と5日後に、WebページAとWebページCへのアクセスを、メンテナンスページへリダイレクトさせたい、というような場合に便利なtipsです。

こんにちは。猫ITソリューションズ広報の齊藤メイ(♀)です。本日は、「Apacheで複数指定したスケジュールで複数指定したページをリダイレクトさせる」についてです。

日を跨いでWebサイトのメンテナンスを複数回行うこともあるかと思います。そういった時に役立つでしょう。.htaccessでももちろん可能ですが、今回はサーバーレベルの処理ということもありますので、Apacheの設定ファイルであるhttpd.confで実装しました。

要件と仕様

要件が生々しいですがあまり深く考えないでください。

要件

  • 以下のページへアクセスしたら、メンテナンスページ(/maintenance.html)へリダイレクトさせる。
    • /aaaa.html
    • /bbbb.html
  • リダイレクトさせる期間は以下の通り。
    • 2016年11月25日(金)9:00~18:00
    • 2016年12月07日(水)9:00~18:00
    • 2016年12月08日(木)9:00~18:00
  • できるだけ楽に実装・運用したい。(リダイレクト有効⇔無効のためにたびたび作業したくない)
  • Webサイトの各ファイルには手を触れたくない

仕様

Apacheのmod_rewrite機能を利用します。これによりWebサイトの各ファイルに手を触れることなく、かつ予約設定ができるため当日にうんとこどっこい作業する必要がありません。今回試したApacheのバージョンは以下になります。

Apache/2.2.3

サンプル

コード

httpd.confへ以下の様に記述します。なおコードでは年月日時分で指定していますが、秒まで可能です。もっともそこまでシビアな条件をつけることはないと思いますが。

 

設定反映

記述したら以下のコマンドを実行して、記述が間違いがないか確認します。「Syntax OK」と出れば問題ありません。もしエラーメッセージが出たらおそらく重複記述やhttpd.confへの記述順番に問題があるのかと思います。エラー内容に応じて修正してください。


問題なければApacheの設定をリロードさせます。リスタートしなくてもOKなのがミソ。リスタートだと現場ルールやWebサイトの規模によっては休日出勤もやむなしですからね。その必要がないのが実は一番このサンプルの良いところかもしれません。

 

注意点

スタート年月日時分を1分前にして比較演算子を「$a >= $b」ではなく「$a > $b」にしています。少し気持ち悪いですね。>=でもイケそうな気がしますが>=にするとconfigtestでエラーになります。Apacheのバージョン(最新バージョン?)によってはイケるらしいので、気持ち悪いのが我慢できない方は>=で試してみてください。

以上です。

今はなくとも、いつか面倒なメンテナンスを要する時もあるかと思います。その時にお役に立てば幸いです。


いかがでしたでしょうか?
猫ITソリューションズは、飼い主の皆さんにITを活用しあらゆるシーンで的確なアドバイスをいたします。それではまたお会いしましょう。

Apacheで複数指定したスケジュールで複数指定したページをリダイレクトさせる

see you!

 



Blog Categories

Member Profile

広報:齊藤 メイ

埼玉在住の三毛猫です。趣味は日向ぼっこ、好きな猫缶はカツオ系です。仲良くしてくださいね!

Facebook
Twitter

代表:齊藤 智宏

埼玉在住のWebデベロッパーです。80's洋楽、映画、レトロゲームが大好きです。よろしく!

Facebook
Twitter