IIS URL重写以重定向PDF文件(正则表达式)

时间:2017-07-25 21:52:05

标签: regex iis iis-8

服务器: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>

1 个答案:

答案 0 :(得分:3)

您可以使用

<match url="(.+)\.pdf$" />

.+尽可能多地匹配除了换行符之外的一个或多个字符