ASP.Net url 从 ...pdf 重写为 ...aspx (IIS 7)

ASP.Net url 从 ...pdf 重写为 ...aspx (IIS 7)

我尝试将 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}&amp;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 页面说明了如何配置此功能以及可用的详细调试信息量。您不需要按照博客文章中的建议创建测试页面——只需跳至“配置失败请求跟踪”部分即可。

相关内容