URL重写匹配连字符

时间:2013-09-09 15:01:49

标签: regex iis-7 url-rewriting

我有2个网址重写规则。

<rule name="Rewrite to microsoft-windows">
      <match url="^microsoft-windows"/>
      <action type="Redirect" url="http://www.mysite.com/default.aspx?name=microsoft-windows"/>
</rule>
<rule name="Rewrite to microsoft">
      <match url="^microsoft"/>
      <action type="Redirect" url="http://www.mysite.com/default.aspx?name=microsoft"/>
 </rule>

由于连字符,只适用“微软”规则。所以

http://www.mysite.com/microsoft-windows 

指向错误的规则。我如何指出:

http://www.mysite.com/default.aspx?name=microsoft-windows

而不是:

http://www.mysite.com/default.aspx?name=microsoft

1 个答案:

答案 0 :(得分:1)

如何只使用一条规则?

<rule name="Rewrite rule" stopProcessing="true">
    <match url="^(microsoft|microsoft-windows)$" />
    <action type="Redirect" url="http://www.mysite.com/default.aspx?name={R:1}" />
</rule>

它会检查路径是否仅包含microsoftmicrosoft-windows,然后重定向到http://www.mysite.com/default.aspx?name={R:1},其中{R:1}是匹配路径的后向引用。