用于从路径中排除应用程序名称的 URL 重写模式



我第一次尝试使用 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"时才匹配。

最新更新