我的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。
出了什么问题?
答案 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>