此IIS重写规则:
<rule name="music search state">
<match url="^music/state/([a-zA-Z-+']+)?$"/>
<action type="Rewrite" url="search.aspx?stateurl={R:1}&t=2" appendQueryString="true"/>
</rule>
网址匹配:
www.example.com/music/state/north-dakota
但不在网址上:
www.example.com/music/state/north-dakota?country=usa
我也尝试过:
^music/state/([a-zA-Z-+']+)?
和^music/state/([a-zA-Z-+']+)
但这些都不适用于这两个网址...我需要在此表达式中更改哪些内容才能在这两个网址上进行匹配?
更新
我尝试扩展表达式的最后一部分,但这两个表达式在IIS中抛出Configuration file is not well-formed XML
错误:
([a-zA-Z-+'?\&=]+)
([a-zA-Z-+'?&=]+)
此表达式与网址([a-zA-Z-+'?&=]+)
答案 0 :(得分:1)
在正则表达式中^music/state/([a-zA-Z-+']+)?$
部分[a-zA-Z-+']
负责music/state/
之后可以找到的所有字符。
这样的事情:^music/state/([a-zA-Z-+'?&=]+)?$
顺便说一下,您可以使用在线翻译检查您的正则表达式,例如http://regexr.com/