要将访问者重定向到https,我在web.config中使用了此规则:
<rewrite>
<rules>
<clear />
<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>
但是当我尝试访问网站时,我得到错误(重定向太多),似乎它陷入了循环。
https://example.com和https://www.example.com没问题。
但是这些地址会导致错误:
example.com&amp; www.example.com
任何人都可以帮我吗?
答案 0 :(得分:1)
如果您有无限循环的重定向。试试这个提示。
如果你还没有登录,您应该只在当前页面不是“login.php”时才进行重定向;即从该页面删除该逻辑。
答案 1 :(得分:0)
我在这些规则中找到了解决方案:
<rules>
<clear />
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
<add input="{HTTPS}" pattern="OFF" ignoreCase="true" />
</conditions>
<action type="Redirect" url="http://example.com/{R:1}" />
</rule>
<rule name="Redirect to WWW" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^example\.com$" />
</conditions>
<action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
</rule>
</rules>