最近阿里云官网上有免费的SSL证书可以买,就决定把网站改成支持https的。还想把对于http的访问全部导向https。

可以在nginx里面这样配置:

  • http监听的是80端口,https监听的是443端口
  • 对于80端口,nginx配置可以这样写:
server {
    listen    80;
    server_name    yoursitename;

    # redirect http to https
    return 301 https://yoursitename$request_uri;
}

  • 然后还要对443端口进行配置
server {
    listen    443 ssl;
    server_name youtsitename;
    ……
    ……
}

关于301和302重定向

301和302都是http状态的编码,代表着某个url发生了转移。

但是,301是永久性转移,302是暂时性转移

如果是301,则搜索引擎在抓取内容的时候,会把网址设置为新的网址。301对搜索引擎比较友好,而且搜索引擎会把老网址的PageRank等信息带到新网址来。

如果是302,则搜索引擎在抓取内容的时候,会把网址设置为就的网址。因为搜索引擎认为302表示是暂时性的,PageRank就被分摊掉了。而且还会被搜索引擎误以为你利用多个域名指向同一个网站,企图干扰排名。这样有可能网站会被降权。

302劫持

由于一些原因,搜索引擎在处理302的时候,不能很好地显示目标网址,仍显示的是原网址,但内容确实目标网址的,相当于从原网址从目标网址“偷了内容”。