URL重写影响所有asp.net控件的虚拟应用程序根目录

时间:2009-09-26 12:13:07

标签: c# asp.net iis-7 url-rewriting rewrite

我使用以下规则将域映射到共享托管环境中的子文件夹:

<rule name="mydomain.co.uk">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^www.mydomain.co.uk$" />
<add input="{HTTP_HOST}" pattern="^mydomain.co.uk$" />
</conditions>
<action type="Rewrite" url="MyDomainFolder/{PATH_INFO}" />
</rule>

此规则允许我访问我的网站www.mydomain.co.uk而不是www.mydomain.co.uk/MyDomainFolder /.

问题是规则更改了我的应用程序的虚拟根目录。使用波浪号时,带有href =“PageTwo.aspx”的控件变为href =“MyDomainFolder / PageTwo.aspx”,这也是相同的:href =“〜/ PageTwo.aspx”变为href =“MyDomainFolder / PageTwo.aspx”< / p>

出于某种原因,这似乎阻止了response.redirect的工作?

有没有人有任何想法我如何修复链接和response.redirect?

1 个答案:

答案 0 :(得分:0)

您真正需要的是响应过滤器和重写

如果您使用的是IIS 7,则URLRewrite插件支持这种双向重写:

http://www.iis.net/download/urlrewrite

他们将其称为入站(重写)和出站(响应过滤)规则