服务器:IIS 8
我有一个URL Rewrite rile,用于将PDF文件重定向到一个页面,该页面将处理一些额外的处理。一切都很好,除非PDF文件中包含特殊字符或空格,然后目标页面只能获取任何空格或特殊字符的字符。
例如,请参阅以下文件名:
Receipt - Hard Drive.PDF
接收页面(/ getfile /?PDF =)只会收到
Drive.PDF
我尝试了各种正则表达式方法,但与大多数人一样,我的正则表达式知识非常糟糕。
如何撰写匹配网址'这将接受所有文件名(至少是Windows接受的文件名,例如带有下划线,短划线,空格,单引号,双引号,井号等的文件名)。是否有任何方法可以编写一些通用的,只需传递所有字符而不管它们是什么,因为我真的只想匹配* .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>
答案 0 :(得分:3)
您可以使用
<match url="(.+)\.pdf$" />
.+
尽可能多地匹配除了换行符之外的一个或多个字符。