web.config中的重定向规则

时间:2014-11-27 21:33:36

标签: redirect iis web-config rewrite

我正在研究这个Seemingly simple redirect in IIS using web.config file,因为我有类似的情况,但那里提到的方法似乎并不适合我。

我在网站上有一个帮助部分,现在我想让它重定向到另一个地方。该网站的其余部分应保持不变,这意味着只有帮助部分/内容应该让用户访问另一个网站:

device.domain.com/help

device.domain.com/help/version

应该将请求转到

company.custhelp.com

但是例如device.domain.com/api应该仍然有用。这是我试过的。如果我在IIS中测试模式,它会说它会起作用。我错过了什么?

<system.webServer>  
  <rewrite>
    <rules>
      <rule name="Help Redirect" stopProcessing="true">            
        <match url="(.*)/help(.*)" ignoreCase="true" />
        <action type="Redirect" url="http://company.custhelp.com/" appendQueryString="false" redirectType="Permanent" />
      </rule>
    </rules>
  </rewrite>
  ...
</system.webServer>

1 个答案:

答案 0 :(得分:4)

匹配网址将尝试匹配域之后的路径,从斜杠后面开始。所以它应该是这样的:

<match url="help(.*)" ignoreCase="true" />

您编写的匹配网址与device.domain.com/temp/help匹配,但不匹配device.domain.com/help。