どんなURLでのアクセスも特定のホストにリダイレクトする


URLにIPアドレスが指定されたり、hostsファイルでの指定やDNSで「a * {IPアドレス}」などとなっていることで、期待していないURLでのアクセスが来ることがあります。

ex.)

[期待するURL]
http://www.windows-maniax.com/~

[期待しないURL]
http://192.168.0.1/~ (IPアドレス)
http://www2.windows-maniax.com/~
http://www/~

期待しないURLでアクセスが来た場合に、期待するURLにリダイレクトする方法を示します。

  1. URL Rewrite Module v2.0をインストールしていない場合はインストールします。
    >>> URL Rewrite Module (IIS.net)

    ※現時点(2009/12/22)ではv2.0はRC2です。v1.1では不具合や機能不足なことがあります。
  2. IISマネージャを起動します。
  3. [接続]ウィンドウで、期待するURLでアクセスしてほしいディレクトリを選択します。
  4. [URL Rewrite]をクリックします。
  5. “URL Rewrite”ページの[操作]ウィンドウで[Add Rules]をクリックします。
  6. [Add rule(s)]ダイアログで”Inbound rules”の[Blank rule]を選択します。
  7. [Conditions]エリアの[Add Conditions]をクリックします。
  8. 各項目に以下のように入力します。
    Name ルールを識別する任意の名前
    ex.) redirect-to-specific-url-rule
    Match URL
    Requested URL Matches the pattern
    Using Regular Expressions
    Pattern (.*)
    Ignore Case チェックしません。
    Conditions
    Logical Grouping Match Any
    Track capture ~ チェックしません。
    Action
    Action Type Redirect
    Action properties
    Redirect URL リダイレクト先のURL + “{R:1}”
    ex.)http://www.windows-maniax.com/{R:1}
    Append query string チェックします。
    Redirect type リダイレクトの理由を選択します。
    ex.)Parmanent (301)
  9. [Conditions]エリアの[Add]をクリックし[Add Condition]ダイアログで以下のように入力します。
    Condition input {HTTP_HOST}
    Check if input string Does not matche the pattern
    Pattern “^” + リダイレクト先のURL + “$”
    ^www.windows-maniax.com$
    Ignore Case チェックします。
  10. 再び[Conditions]エリアの[Add]をクリックし[Add Condition]ダイアログで以下のように入力します。
    Condition input {SERVER_NAME}
    Check if input string Does not matche the pattern
    Pattern “^” + リダイレクト先のURL + “$”
    ^www.windows-maniax.com$
    Ignore Case チェックします。
  11. [操作]ウィンドウで[適用]をクリックしてください。

以上

[このドキュメントに対応する環境]

  • OS
    • WIndows Server 2008
    • Windows Vista
    • Windows 7
  • IIS
    • 7.0
    • 7.5


タグ:


コメントをどうぞ