IIS Url重写不起作用

时间:2015-04-28 04:36:03

标签: iis url-rewrite-module

我的iis重写模块有问题。我搜索了它并搜索了太多但我的问题仍然存在。

我有两个重写规则,第一个将任何http请求重定向到https equivalant,第二个重定向某些特定页面到其他页面。

http请求成功重定向到https,但第二条规则无效。

<rewrite>
  <rules>      
    <rule name="redirect special page" stopProcessing="true">
      <match url="(.*)MySite.com/accountTransactions" />
      <action type="Redirect" url="MySite.com/404.html" />
    </rule>
    <rule name="HTTP to HTTPS redirect" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
      </conditions>
      <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
    </rule>
  </rules>
</rewrite>

我正在使用IIS 8,Windows Server 2012 R2。

出了什么问题?

1 个答案:

答案 0 :(得分:1)

match url不应包含域名,而应包含路径

<match url="^accountTransactions" />

请参阅http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

如果您需要匹配特定域下的路径(当您的站点有多个域名时),那么您应该为{HTTP_HOST}添加条件

<conditions>
   <add input="{HTTP_HOST}" type="Pattern" pattern="^www\.mysite\.com$"> 
</conditions>