IIS重写URL无法在连字符上匹配

时间:2017-02-10 15:32:35

标签: regex iis url-rewriting

我正在尝试在iis中重写网址。 Windows 8,iis 7,url rewrite 2.0。

我只想用连字符重写任何网址。如果连字符是第一个字符

,它似乎只能起作用

如果我网页上的网址为“mysite.com/-this-is-test-page”,则以下内容有效。

  <match url="^(-)" />
  <action type="Rewrite" url="content/this-is-a-test.asp" />

但如果连字符不是主角,我似乎无法使其工作。我已经尝试了我能想到的每一个匹配。我可以匹配一个前导连字符,但不能匹配字符串中间的连字符。

这些都不起作用:

^(/-)
^(\-)
^([-])
^([\-])
^([/-])
^([\-])

1 个答案:

答案 0 :(得分:0)

仅使用连字符-。如果您愿意,也可以在character class [-]capturing group (-)中使用它。在你的情况下,这并不重要。

^defines the beginning of a string的锚。如果你在连字符前面使用^,那么你应该说,如果连字符在开头,它应该只匹配。

有时,连字符需要使用斜杠进行转义:\-