2

ASP.NET 4 環境 (Windows 7 上の IIS 7.5) 内でホストされている WCF Web サービスがあり、URL 書き換え/リダイレクトを使用したいと考えています。これを行う必要があるのは、パラメーターを挿入するだけのモバイル デバイス コードを変更できないためです。

ここに私が欲しいURLがあります:

http://server.test.com/VirtualDirectory/theOrganization/RequestService.svc/REST/GetIssueTypes

実際の URL は次のとおりです。

http://server.test.com/VirtualDirectory/RequestService.svc/REST/GetIssueTypes?organization=theOrganization

theOrganization を削除して、リダイレクトのためにクエリ文字列に追加する方法に注意してください。

<rule name="test" stopProcessing="true">
    <match url="(.+\.?)/(.+)/RequestService.svc/(.+)" />
    <action type="Redirect" url="{R:1}/RequestService.svc/{R:3}?organization={R:2}"
    redirectType="Permanent" />
</rule>

ルールを書くのは少し変だと思います。一致する正規表現が正しいと思います。IIS マネージャーの URL 書き換えテスターで式を実行したところ、目的に一致しているように見えます。また、IIS URL Rewrite がインストールされていて、簡単なルールを作成したところ、うまくいきました。

しかし、ブラウザーを使用して試してみると、リダイレクトに失敗し、404 が返されました。私は IIS Rewrite の専門家が協力してくれることを望んでいました。

ありがとう!

4

1 に答える 1

0

iis 7.5 と url rewrite 2.0 を使用してテスト サーバーでルールをテストしましたが、ルールは機能していますが、正規表現は必要な URL と実際の URL の両方に一致します。

したがって、二重リダイレクトになります

このようなパターンが必要だと思います

(.+.?)/VirtualDirectory/(.+)/RequestService.svc/(.+)

お役に立てれば。

于 2012-11-01T22:05:08.623 に答える