您好我想将非www网站的https://架构重定向到https://www。站点。
我使用下面的代码
<rule name="Force HTTPS nonwww" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9-]+)$" />
</conditions>
<action type="Redirect" url="https://www.{HTTP_HOST}{REQUEST_URI}" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="Force HTTPS" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="true" redirectType="Permanent" />
</rule>
当我使用http://访问我们的网站时它工作正常但是当我使用https://访问我们的网站时,它会抛出404错误。
基本上,当我们点击http:或https:到我们的网站时,它应该重定向到https://www.example.com。
我在IIS 7中测试了上述规则,并且使用http://和https://成功测试了但是它不能用于https://
我们将不胜感激。
答案 0 :(得分:0)
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
这就是说'不要为传入的https请求执行此操作'。 由于您的规则都设置了,因此您永远不会重定向https请求 一般来说,你需要小心,你不想进入无限循环重定向https://x =&gt; https://x,所以你的第二条规则应保持原样 你可以安全地改变你的第一条规则:
<conditions>
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9-]+)$" />
</conditions>
到
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9-]+)$" />
</conditions>
答案 1 :(得分:0)
我们能够解决这个问题。由于它抛出了无效的主机错误,因此无法找到站点名称。因此,我们创建了重定向网站并使用httpredirect,将其重定向回我们的https://www.example.com网站。
这对我们有用。
感谢大家的帮助。