【问题标题】:IIS 7 URL Redirect based on URL path基于 URL 路径的 IIS 7 URL 重定向
【发布时间】:2012-09-14 02:42:57
【问题描述】:

我有一个托管在 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

请注意我要如何删除 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 重写专家能够介入,因为我是新手。

谢谢!

【问题讨论】:

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


    【解决方案1】:

    我在具有 iis 7.5 和 url rewrite 2.0 的测试服务器上测试了您的规则,并且该规则正在运行,但是您的正则表达式匹配您想要的 url 和真实的 url。

    所以你最终会得到一个双重重定向

    我想你希望你的模式是这样的

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-06-24
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 2012-12-21
      • 2010-10-27
      • 2011-08-16
      • 1970-01-01
      相关资源
      最近更新 更多