インフラエンジニアbacchiのわかったことまとめ

bacchi.me

Apache

インフラエンジニアが選んだ頻出のリダイレクト設定7選

更新日:

もうすぐ年度末ですね。

年度末が近づくとサイトのリニューアルやサーバーの引っ越しがとても多いと思います。

Web屋で働いていたいましたが年度末はいつも鉄火場でした。

リニューアルとかすると↓みたいなこと言われていました。

  • メンテナンス中は訪問者をメンテページに飛ばす!
  • 新しいサイトは常時HTTPSで運用する!
  • URLは絶対にwwwありにする!

これらの多くのことはリダイレクト設定を行うことで可能ですが、
普段からサーバーに触れていないとなかなか難しく感じるものと思います。

サーバー管理者をしていて、結構使うなーと感じた設定のサンプルを紹介しますね。

設定の前提条件

  • Apache HTTP Server を想定しています。
    • が、IISのISAPI_Rewrite でも通用するはず。
  • 設定を記述するファイルはドキュメントルート直下の.htaccessファイルとします。
    • セキュリティ的にどない?という感じですが、レンタルサーバーなどではApacheの設定ファイル触れないからね、仕方ないね。
  • 以下の記述はすでに書かれているものとします。

特定IPアドレス以外からの接続はメンテナンスページに飛ばしたい

サーバーのメンテナンスを行う場合などによく使いますね。

  • 特定のIPアドレス以外の全ての接続をメンテナンスページにリダイレクトする

この例で、R=503 はリダイレクトの際に503のステータスコードを返すことを意味しています。

この例ではメンテナンスページに飛ばすので、503のステータスコードを返すようにしています。

  • 一部のコンテンツは閲覧を許可し、それ以外はメンテナンスページにリダイレクトする

アクセスを許可するIPアドレスの指定の部分で、
^(192.168.200.1|172.16.200.1|10.0.200.1-)$ と記載しています。
丸括弧『()』で囲み、パイプ『|』でIPアドレスを区切るとORの条件で判定されます。

この記述は以下のように書き換えることができます。

[OR]を付けないとANDの条件になってしまうので気をつけましょう。

URLをwwwありに統一したい

URLを『wwwあり』または『wwwなし』に統一することを『正規化』といいます。

URLをwwwなしに統一したい

上の例とは真逆のことをします。

必ずHTTPSで接続させたい

この例はHTTPで接続がきた場合、HTTPSへリダイレクトします。

下記の様に記述することもできますが、ロードバランサーを使用している場合、
ロードバランサーとWebサーバーの間で80番ポート以外のポートで
情報のやりとりをしている場合、意味を成さない設定となってしまいます。

必ずHTTPで接続させたい

上記とは逆の設定ですね。

または

SEO的にはHTTPSのページがいいという話を聞くので、この設定をすることは少なそうですね。

スマホ・ガラケーは専用ページに飛ばす

  • ガラケー用の設定
    • 前提条件としてガラケー用ページは /mb 以下にあるものとする

  • スマホ用の設定
    • 前提条件としてスマホ用ページは /sp 以下にあるものとする

上記の例ではiPadでの接続はPCページを見られる設定になっています。

モバイルサイトへのリダイレクトは302を返すようにしています。

どうやら301よりも302の方がいい模様です。
Google、モバイル向けサイトのリダイレクトには301よりも302を使うように推奨を変更|海外SEO情報ブログ

ページが存在しない場合に404ページに飛ばす

404ページなので、404のステータスコードを返すようにしています。

Rewriteの設定とは関係ありませんが、Google AdSense‎ を使っている場合
404ページに広告があると規約違反となります。
最悪の場合AdSenseが使えなくなるそうなのでお気をつけください。

404リダイレクトは下記の方法でも実現可能です。(mod_rewriteでは無いですが;)

Sponsor Link

スポンサーリンク

Sponsor Link

スポンサーリンク

-Apache

Copyright© bacchi.me , 2018 AllRights Reserved.