我第一次尝试使用 IIS 7 URL 重写功能,但我在使正则表达式正常工作时遇到问题。似乎应该足够简单。我需要做的就是像这样重写一个 URL:
http://localhost/myApplication/MySpecialFolder
自:
http://localhost/MySpecialFolder
这可能吗?我希望正则表达式忽略原始 URL 中"myApplication"之前的所有内容,以便我可以使用"http://localhost"或"http://mysite"等。
这是我到目前为止得到的:
^myApplication/MySpecialFolder$
但是使用"测试模式..."在IIS中,它说我的模式不匹配,除非我完全提供"myApplication/MySpecialFolder"。有谁知道如何更新我的正则表达式,以便忽略"myApplication"之前的所有内容,并将以下 URL 视为匹配项?
http://localhost/myApplication/MySpecialFolder
http://mysite/myApplication/MySpecialFolder
提前非常感谢!
溶液:
我需要将我的正则表达式更改为:
myApplication/MySpecialFolder
开头没有^
,结尾没有$
。
您的正则表达式是正确的,模式将与域后第一个斜杠之后开始的路径匹配。所以只有粗体部分将用于匹配:http://localhost/
myApplication/MySpecialFolder
要将重写限制为特定域,您必须使用Conditions
Condition input
= {HTTP_HOST}
除非 IIS 中的正则表达式有根本的不同之处,否则您希望在开始时取出锚点 ( ^
) 进行匹配。
myApplication/MySpecialFolder$
克拉^
告诉它是字符串的开头,美元符号$
告诉它与结尾相匹配。 像abc
这样的正则表达式在字符串中的任何位置找到"abc",^abc
匹配以"abc"开头的字符串,abc$
匹配以"abc"结尾的字符串,并且^abc$
只在整个字符串为"abc"时才匹配。