トップ回答者
URL書き換え(ホスト名の書き換え)

質問
-
お世話になります。
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の書き換えで、ホスト名を動的にすることはできないのでしょうか?
ご存知の方がいらっしゃいましたらご教授願います。
回答
-
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ご参考になれば幸いです。
すべての返信
-
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ご参考になれば幸いです。