我有一个网站,刚刚购买了SSL。我希望所有URL都重定向到他们的HTTPS / WWW版本。例如:
1. http://mywebsite.com -> https://www.mywebsite.com
2. https://mywebsite.com -> https://www.mywebsite.com
3. http://www.mywebsite.com -> https://www.mywebsite.com
4. https://www.mywebsite.com -> [No redirect needed]
我已经尝试了一些解决方案:this和this来自标记为答案的方法。但对于案例2,几乎所有答案都会返回“Not Found. HTTP Error 404
”,即https://mywebsite.com
未重定向到https://www.mywebsite.com
,而是返回404。
已经尝试过的解决方案:
1
<rule name="Redirect top domains with non-www to www" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^([^\.]+)\.([^\.]+)$" />
</conditions>
<action type="Redirect" url="https://www.{HTTP_HOST}/{R:1}" redirectType="Permanent" />
<serverVariables>
<set name="Redirect" value="false" />
</serverVariables>
</rule>
<rule name="Force HTTPS" enabled="true" stopProcessing="true">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
2
<rule name="Force WWW and SSL" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^[^www]" />
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://www.zzz.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
似乎其他人也有这个问题。但我找不到合适的解决方案。
答案 0 :(得分:1)
问题出在IIS的Site Bindings
部分。 https://mywebsite.com
没有记录。我添加了这条记录,问题中的解决方案也奏效了。有关此功能的详细信息,请访问this page。