【发布时间】:2011-09-04 17:49:49
【问题描述】:
我遇到了 IIS7 集成管道 URL 重写的问题。 对于我的特定场景,我需要重写/重定向部分初始请求,如下所示。
用户在浏览器地址栏中输入
http://savecontoso.com/files/123456789/somefile.html。用户被重定向到
http://savecontso.com/default.aspx?url=(url="default.aspx?url={R:1}"的结果)
目前只有在我创建初始请求 http://savecontoso.com/default.aspx/files/123456789/somefile.html 时才能按预期工作。
我必须注意,服务器上没有/files/ 和/123456789/ 的实际目录,也没有任何名为somefile.html 的文件。我只需要将整个路径和文件名附加到查询字符串。
这是我第一天使用 IIS 而不是背后的页面代码使用重定向/重写功能,我环顾了 learn.iis.net、Google 等,但无济于事。我知道重写发生在页面请求之前,但由于某种原因,我的特定代码在触发重定向之前需要页面请求。
我怀疑这是因为我没有在初始请求时触发条件?
<rewrite>
<rules>
<rule name="1" stopProcessing="true">
<match url="(.*)(/files/\d+/.*html$)" />
<action type="Redirect" redirectType="Permanent" url="default.aspx?url={R:1}" />
</rule>
</rules>
</rewrite>
【问题讨论】:
标签: iis url-rewriting