我有一个功能完善的URL重写来删除文件扩展名。但是当我使用response.redirect
时,URL重写不会发生。奇怪的是,这只有在URL使用完整路径而不是相对时才会发生。例如:使用URL重写规则和SSL证书的跨域response.redirect
response.redirect("http://example.com/page")
给我http://example.com/page.asp
而response.redirect("/page")
是罚款。
URL重写代码:
<rule name="rewrite asp">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" negate="true" pattern="(.*).asp" />
</conditions>
<action type="Rewrite" url="{R:1}.asp" />
</rule>
我需要使用的完整路径,因为我从一个域到另一个。有任何想法吗?
卫生署,对不起,这是Server.Transfer的 – 2012-03-21 20:34:03
啊肯定,是的,我试过之一,没有工作。 – greener 2012-03-21 20:38:06
作为最后一项建议,请尝试添加查询字符串,例如'response.redirect(“http://example.com/page/?test=1”)' – 2012-03-21 20:41:09