当有人点击我网站的根目录时,我正试图关闭HTTPS ...
我想要
https://www.domain.com/
重定向到
http://www.domain.com/
但我也想要..
https://www.domain.com/secure.aspx
或任何其他不重定向的命名页面。
这是我迄今为止所拥有的,但我无法让它发挥作用。我尝试了一千种方法,并阅读了所有关于此的IIS文档和示例,但我无法想出神奇的公式。
<rule name="Redirect Root Only to Non HTTP" stopProcessing="true">
<match url="\.com/$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="on" />
</conditions>
<action type="Redirect" url="http://www.domain.com" appendQueryString="false" redirectType="Found" />
</rule>
答案 0 :(得分:1)
我认为这是你的答案:
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{URL}" pattern="^.*\.aspx$" ignoreCase="true" />
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
<rule name="Redirect to HTTP" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{URL}" pattern="^$" />
<add input="{HTTPS}" pattern="^ON$" />
</conditions>
<action type="Redirect" url="http://{HTTP_HOST}/" redirectType="Permanent" />
</rule>
答案 1 :(得分:0)
你很接近..除了实际模式(仅匹配URL路径部分而不匹配域名)。正确的模式是^$
,这意味着空字符串将仅匹配域根命中,例如https://www.domain.com/
。
完整规则将是:
<rule name="Redirect Root to HTTP" stopProcessing="true">
<match url="^$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="on"/>
</conditions>
<action type="Redirect" url="http://www.domain.com/" redirectType="Permanent"/>
</rule>