HTTP协议强制自动跳转HTTPS协议网站-♚纪实阁付涛♚

HTTP协议强制自动跳转HTTPS协议网站


在前面两篇文章介绍了关于SSL及HTTPS的一些大体情况后,在这篇文章里面我们来陈述一个更有意义的话题,那就是当HTTP协议域名和HTTPS协议域名同时存在的时候,如何统一规划的问题;

统一HTTPS访问站点的粗浅意义

接触过SEO或网站推广的朋友一定知道,URL这个概念,对于搜索引擎而言,以下五个链接都会被给予不一样的对待,在SE认为这是独立的五个连接:

http://www.diebaosoft.com

http://diebaosoft.com

http://www.diebaosoft.com/2

http://www.diebaosoft.com/2/d.html

https://www.diebaosoft.com

当一个完全相同的页面或站点采用N个不一样的域名来访问的时候,则一定会出现主次不分的问题,对于这类问题,短期而言,可以采用301重定向;长期而言,还是要做出取舍;

对于SSL而已而言,想达到的效果就是无论用户是输入的www.diebaosoft.com还是http://www.diebaosoft.com都会自动跳转至:https://www.diebaosoft.com上面来;否则则有可能出现用户输入:
https://www.diebaosoft.com/2/d.html能正常打开页面,而http://www.diebaosoft.com/2/d.html却无法打开页面的现象。

如何设置HTTP协议自动跳转HTTPS

知道了问题,那处理问题也比较简单,我们提供两种方案,一种是IIS上安装URL重定向模块,手工添加定向规则;

第二种办法是直接使用我们提供的代码,并把代码添加至根目录下的:web.config 文件中即可。

  1. <rewrite>
  2. <rules>
  3. <rule name="HTTP to HTTPS redirect" stopProcessing="true">
  4. <match url="(.*)" />
  5. <conditions>
  6. <add input="{HTTPS}" pattern="off" ignoreCase="true" />
  7. </conditions>
  8. <action type="Redirect" redirectType="Found" url="https://www.nixinghome.com/{R:1}" />
  9. </rule>
  10. </rules>
  11. </rewrite>

注:实际使用中,请问上述代码中的nixinghome.com换成自己的主域名。

当通过上面内容调整好了后,就可以正常了,但如果面对同一个域名涉及到多条301规则的时候,则多条规则之间会出现一个先后顺序,因为这个顺序的原因,会导致类似以下情况出现:

1、首页HTTP跳转HTTPS站点正常,但是除了首页以外的所有HTTP协议链接全部被跳转至HTTPS协议首页,导致搜索引擎原收录页面被大量重定向至首页,导致异常问题出现;

2、无法呈现301效果;

多条规则如下图所示:

针对这个问题的解决办法,只需要将涉及到HTTP转至HTTPS的 重定向规则<rule>……</rule>之间的内容移动最上面的规则,为首选规则即可;此先后顺序有点类似于网站在IIS里面的文件访问顺序一样;

 

本文由 ♚纪实阁付涛♚ 作者:谍豹云销 发表,其版权均为 ♚纪实阁付涛♚ 所有,文章内容系作者个人观点,不代表 ♚纪实阁付涛♚ 对观点赞同或支持。如需转载,请注明文章来源。

发表评论