none
URL書き換え(ホスト名の書き換え) RRS feed

  • 質問

  • お世話になります。

    IIS8.5にARR (Application Request Routing)をインストールして、

    「URL書き換え」でTOMCATと連携を実施しようとしています。

    以前は、ISAPI_Rewrite を使っていたのですが、切り替えようとしています。

    RewriteRule ([^/]*)/test/(.*)/(.*)/2 $1/test/xxxx.htm\?a=$2&b=$3

    のような定義をIISの「URL書き換え」で実施しようと

    パターン:  ([^/]*)/test/(.*)/(.*)/2

    URLの書き換え: http://{R:1}:8080/test/xxxx.htm?a={R:2}&b={R:3}

    とすると、HTTP エラー 502.3 - Bad Gatewayになってしまいます。

    ホスト名の書き換えをなくして、

    URLの書き換え: http://localhost:8080/test/xxxx.htm?a={R:2}&b={R:3}

    とすると、正常に表示されます。

    URLの書き換えで、ホスト名を動的にすることはできないのでしょうか?

    ご存知の方がいらっしゃいましたらご教授願います。

    2014年12月4日 13:03

回答

  • IIS URL Rewriteでは、パターンの比較対象はパス部分のみで、ホスト名が含まれません。(ARRはIIS URL Rewriteに依存するので、おそらく同様と思います。)
    ホスト名はHTTP_HOSTで参照できますので、次のように指定してみてはいかがでしょう。

    パターン:^test/(.*)/(.*)/2
    アクションの種類:リダイレクト
    リダイレクトURL:http://{HTTP_HOST}:8080/test/xxxx.htm?a={R:1}&b={R:2}


    以下のページに詳しい説明があります。

    URL Rewrite Module Configuration Reference
    http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

    ご参考になれば幸いです。


    • 回答の候補に設定 佐伯玲 2014年12月9日 0:20
    • 回答としてマーク 佐伯玲 2014年12月10日 0:22
    2014年12月8日 14:46

すべての返信

  • IIS URL Rewriteでは、パターンの比較対象はパス部分のみで、ホスト名が含まれません。(ARRはIIS URL Rewriteに依存するので、おそらく同様と思います。)
    ホスト名はHTTP_HOSTで参照できますので、次のように指定してみてはいかがでしょう。

    パターン:^test/(.*)/(.*)/2
    アクションの種類:リダイレクト
    リダイレクトURL:http://{HTTP_HOST}:8080/test/xxxx.htm?a={R:1}&b={R:2}


    以下のページに詳しい説明があります。

    URL Rewrite Module Configuration Reference
    http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

    ご参考になれば幸いです。


    • 回答の候補に設定 佐伯玲 2014年12月9日 0:20
    • 回答としてマーク 佐伯玲 2014年12月10日 0:22
    2014年12月8日 14:46
  • 回答ありがとうございます。お教えいただいたHTTP_HOSTで対応できました。詳細いただいたサイトも確認させていただきます。
    2014年12月9日 11:09