【发布时间】:2015-11-29 10:25:23
【问题描述】:
这个 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-+']+)
但是这些都不适用于两个 URL...我需要在此表达式中进行哪些更改以使其在两个 URL 上都匹配?
更新
我尝试扩展表达式的最后一部分,但是这 2 个表达式在 IIS 中引发了 Configuration file is not well-formed XML 错误:
([a-zA-Z-+'?\&=]+)-
([a-zA-Z-+'?&amp;=]+)
并且此表达式与 URL ([a-zA-Z-+'?&amp;=]+) 不匹配
【问题讨论】:
-
这个 XML 文件是为什么系统编写的?您应该将该标签添加到问题中。
-
您的意思是您需要对
?country=usa部分的支持吗?似乎您只需要在您的正则表达式中添加?和=-^music/state/([a-zA-Z-+'=?]+)?$ -
@Kamehameha 但这意味着 countryurl 值将成为 stateurl 参数值的一部分,对吗?那不是我想要的。我也应该能够添加更多参数,例如
www.example.com/music/state/north-dakota?country=usa&sort=az -
您可能需要删除
$或使用与 ?country=usa 部分匹配的部分将其扩展。^music/state/([a-zA-Z+-']+)?(?:\?[&a-zA-Z+=-]*)?$– -
@sln 谢谢,但我测试了你的并得到了
Configuration file is not well-formed XML,我已经用我运行的一些测试更新了我的帖子。