基于URL路径的IIS 7 URL重定向

时间:2012-09-21 16:35:58

标签: asp.net wcf iis iis-7 url-rewriting

我在ASP.NET 4环境(Windows 7上的IIS 7.5)中托管了WCF Web服务,我想使用URL重写/重定向。 我需要这样做的原因是因为我无法将某些移动设备代码更改为仅插入参数。

这是我想要的网址:

  

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

真正的网址是:

  

http://server.test.com/VirtualDirectory/RequestService.svc/REST/GetIssueTypes?organization=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专家可以插入,因为我相当新。

谢谢!

1 个答案:

答案 0 :(得分:0)

我在iis 7.5和url rewrite 2.0的测试服务器上测试了你的规则,规则正在运行,但你的正则表达式与你想要的网址和真实网址相匹配。

所以你最终得到了双重定位

我认为你希望你的模式像这样

  

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

希望这有帮助。