任何不以.asp结尾的字符串的正则表达式

时间:2012-04-17 16:56:53

标签: regex iis asp-classic

我(不幸的是)使用IIS,我正在进行重写,创建友好的配置文件URL。我提出了一个可行的解决方案,但是想在用户名中允许使用句点。因此,重写的网址格式为profile/username但我显然不想重定向包含 .asp 的任何路径,因此脚本不会被重新路由。他们屏蔽的实际网址是profile/iviator.asp?p=username。很简单吧?是的,好的,正则表达式引擎IIS'重写模块依赖的是假的。

1 个答案:

答案 0 :(得分:0)

编辑经过一些研究后,我发现IIS不使用.NET正则表达式引擎,而是使用VC ++运行时中的那个,这似乎不允许负面的外观。

但是,您可以为您的模式添加适合您的问题的条件(从this post中学习)。这样的事情可能会起到作用:

<rule name="RewriteNonAsp" stopProcessing="true">
  <match url="^(.*)$" />
  <conditions>
    <add input="{URL}" pattern="^.*?\.asp(?:\?|$)" negate="true" />
  </conditions>
  <action type="Rewrite" url="<path>" appendQueryString="false" />
</rule>