2012-04-17 125 views
0

我(不幸地)使用IIS,我正在做一个重写,创建友好的配置文件URL。我想出了一个可行的解决方案,但希望允许在用户名中输入句点。因此,重写的URL格式为profile/username,但我显然不想重定向包含.asp的任何路径,因此脚本不会重新路由。他们掩盖的实际URL是profile/iviator.asp?p=username。很简单,对吗?是的,正则表达式引擎IIS的重写模块依赖于伪造。任何字符串的正则表达式不以.asp结尾

+2

在正则表达式引擎中有什么可能是伪造的? – Lucero 2012-04-17 17:35:34

+0

微软可以提供帮助。写非伪造模式/规则,看到这里http://goo.gl/XwpvV – 2012-04-17 18:07:52

回答

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> 
+0

似乎并不。不过谢谢。尝试http://regexpal.com。 – 2012-04-17 17:40:33

+0

@GabrielRyanNahmias,编辑。请注意,虽然regexpal不使用相同的正则表达式引擎。 – Lucero 2012-04-17 18:15:02

相关问题