【发布时间】:2017-07-25 21:52:05
【问题描述】:
服务器:IIS 8
我有一个 URL 重写 rile 将 PDF 文件重定向到将处理一些额外处理的页面。一切正常,除非 PDF 文件中包含特殊字符或空格,然后目标页面只能获取任何空格或特殊字符的正确字符。
作为示例,请参阅以下文件名:
Receipt - Hard Drive.PDF
接收页面 (/getfile/?PDF=) 将只接收
Drive.PDF
我尝试了各种正则表达式方法,但与大多数人一样,我的正则表达式知识非常糟糕。
如何编写一个“匹配 URL”来接受所有文件名(至少是那些被 Windows 接受的文件名,例如带有下划线、破折号、空格、单引号、双引号、井号等的文件名)。有什么方法可以编写通用的东西,只需传递 all 字符而不管它们是什么,因为我真的只想匹配 *.pdf?我目前的规则如下。
<rule name="PDF Rewrite" stopProcessing="true">
<match url="([\w-]+)\.pdf$" />
<action type="Redirect" url="/getfile/?PDF={R:1}.pdf" logRewrittenUrl="true" redirectType="Temporary" />
</rule>
【问题讨论】:
-
试试
<match url="(.+)\.pdf$" /> -
谢谢!这很好用。您能否将其发布为答案,以便我接受?