我第一次尝试使用IIS 7 URL重写功能,而我无法正常使用正则表达式。看起来应该很简单。我需要做的就是重写这样的URL:
http://localhost/myApplication/MySpecialFolder
要:
http://localhost/MySpecialFolder
这可能吗?我希望正则表达式忽略原始URL中“myApplication”之前的所有内容,以便我可以使用“http:// localhost”或“http:// mysite”等。
这是我到目前为止所得到的:
^myApplication/MySpecialFolder$
但是在IIS中使用“测试模式...”功能,它说我的模式不匹配,除非我完全提供“myApplication / MySpecialFolder”。有谁知道我如何更新我的正则表达式,以便忽略“myApplication”之前的所有内容,并将以下网址视为匹配?
http://localhost/myApplication/MySpecialFolder
http://mysite/myApplication/MySpecialFolder
非常感谢提前!
SOLUTION:
我需要将我的正则表达式更改为:
myApplication/MySpecialFolder
开头没有^
,最后没有$
。
答案 0 :(得分:2)
您的正则表达式是正确的,该模式将与域后第一个斜杠后开始的路径匹配。
因此,只有粗体部分才会用于匹配:http://localhost/
myApplication / MySpecialFolder
要限制重写到特定域,您必须使用Conditions
= Condition input
{HTTP_HOST}
部分
答案 1 :(得分:1)
除非IIS中的正则表达式有根本的不同,否则您需要在开始时取出锚点(^
)以匹配。
myApplication/MySpecialFolder$
克拉^
告诉它这是字符串的开头,而美元符号$
告诉它匹配结尾。像abc
这样的正则表达式在字符串中的任何位置找到“abc”,^abc
匹配以“abc”开头的字符串,abc$
匹配以“abc”结尾的字符串,以及^abc$
}只在整个字符串为“abc”时匹配。