【问题标题】:IIS URL Rewrite to Redirect PDF File (Regex)IIS URL 重写以重定向 PDF 文件(正则表达式)
【发布时间】: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>

【问题讨论】:

  • 试试&lt;match url="(.+)\.pdf$" /&gt;
  • 谢谢!这很好用。您能否将其发布为答案,以便我接受?

标签: regex iis iis-8


【解决方案1】:

你可以使用

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

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

【讨论】:

  • 谢谢。我可以确认这是按预期工作的。
猜你喜欢
  • 2018-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
相关资源
最近更新 更多