我尝试将 pdf 的 URL 重写为 aspx 页面,但不起作用。我在 iis-log 中也看不到该请求。
<rewrite>
<rules>
<rule name="PDF" stopProcessing="true">
<match url="PDF/(.*?)/(\d*)/(.*?.pdf)$" />
<action type="Rewrite" url="SISPdf.aspx?id={R:2}&fn={R:1}" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
一个例子:
http://myserver:8089/PDF/ABC/123/DEF_456.pdf
应重写为:
http://myserver:8089/SISPdf.aspx?id=123&fn=ABC
我尝试了所有方法都得到 HTTP 500 或 HTTP 404。
是否可以调试重写规则?
编辑:
在旧的 IIS (<= 6) 我记得我必须设置ISAPI过滤器对于 PDF 或图像文件扩展名的 ASP/ASP.Net,因此 IIS 知道他必须处理这一点。有没有等效的?
答案1
尝试改变
<match url="PDF/(.*?)/(\d*)/(.*?.pdf)$" />
到
<match url="PDF/(.*)/(\d*)/(.*).pdf$" />
另外,删除“stopProcessing='true'”。由于您正在进行重写,因此您实际上希望继续处理。
答案2
要调试 URL 重写模块,您可以使用 IIS 7.x“失败请求跟踪”,与其名称相反,它可用于跟踪成功和失败的请求。这learn.iis.net 页面说明了如何配置此功能以及可用的详细调试信息量。您不需要按照博客文章中的建议创建测试页面——只需跳至“配置失败请求跟踪”部分即可。