0

http://www.domain.com/some/url(.*)(すべての背後にある/url) をhttp://some.other.com/some/url{R:1}({R:1} が一致する URL の (.*) の内容になる場所)にルーティングしようとしています。

以下のルールとあらゆる種類のバリエーションを試しましたが、正しく書き換えられるものはないようです:

<rule name="Reverse Proxy" stopProcessing="true">
    <match url="^some\/url\/(.*)" />
    <action type="Rewrite" url="http://some.other.com/some/url/{R:1}" />
</rule>

どんな助けでも大歓迎です!

4

2 に答える 2

2

あなたの正規表現が問題かもしれません。
その後、すべてをリダイレクトする場合は、some/url次を使用します。

<rule name="Reverse Proxy" stopProcessing="true">
    <match url="^some/url(.+)$" />
    <action type="Rewrite" url="http://some.other.com/some/url/{R:1}" />
</rule>

後ですべてをリダイレクトしてパスを保持したい場合はsome/url/、次を使用できます。

<rule name="Reverse Proxy" stopProcessing="true">
    <match url="^some/url/(.+)$" />
    <action type="Rewrite" url="http://some.other.com/{R:0}" />
</rule>

IIS テスト パターン ツールを使用して、パターンを簡単にテストできます。
http://www.iis.net/learn/extensions/url-rewrite-module/testing-rewrite-rule-patterns

編集

2 番目のルールをテストするために行ったこと:

  • 自分のサーバーにリダイレクトするようにドメインをセットアップしtest.comます (ホスト ファイルを使用)
  • 次のように IIS でルールを設定します。ルール

web.configファイルに次の構成を指定します。

<rule name="test" stopProcessing="true">
    <match url="^some/url/(.+)$" />
    <action type="Rewrite" url="http://www.google.com/{R:0}" />
</rule>
  • ブラウザhttp://test.com/some/url/googleでアクセス: クロム

Google を宛先として使用し、最初に要求されたパスをパラメーターとして使用して、URL が書き換えられていることを示しています。

于 2013-02-04T02:34:02.607 に答える