[英]redirect http to https Infinity loop 301 IIS(load balancing environment)
这是重写规则的碎片
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://www.example.com/TEST_SITE/{R:1}"
redirectType="Permanent" />
</rule>
</rules>
我的目的是测试将 http 重定向到 https 是否在我的测试站点上有效,但是,它将是一个无限循环,代码为 301(永久移动)
如果我将 url="https://www.example.com/ TEST_SITE /{R:1} 更改为 url="{HTTP_HOST}/{R:1}",它将起作用,不再循环。但不是将我重定向到https://www.example.com/TEST_SITE/ ,它将我重定向到https://www.example.com/ (生产环境)。
任何想法来解决这个问题? 谢谢
愚蠢的我昨天没想到这个...添加您的域名/ HTTP_HOST 作为输入条件。
这来自我网站上的一个真实例子:
<!-- redirect HTTP naar HTTPS for WordPress https://www.saotn.org/ssl-wordpress-move-wordpress-site-https-definitive-guide/ -->
<!-- see https://www.saotn.org/redirect-http-to-https-on-iis/ and
https://www.saotn.org/iis-url-rewrite-redirect-http-to-https/ for more
information -->
<rule name="example.com http to https" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(www.)?example\.com$" />
<add input="{HTTPS}" pattern="off" />
<add input="{URL}" pattern="(.*)" />
</conditions>
<action type="Redirect" url="https://www.example.com/{R:1}" redirectType="Permanent" />
</rule>
您的TEST_SITE
应该在{URL}
输入模式中,在{R:1}
捕获。
请试试这个
<rule name="HTTP To HTTPS" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="OFF" />
<add input="{HTTP_HOST}" pattern="^(([^\.]+)\.)?example.com$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:0}" />
</rule>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.