0

我有 2 个 url 重写规则。

<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>

由于连字符,仅适用于“microsoft”的规则。所以

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

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

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

而不是:

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

1 回答 1

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>

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

于 2013-09-10T15:56:38.783 回答