为WordPress启用HTTP和HTTPS同时访问,支持Nginx

为WordPress启用HTTP和HTTPS同时访问,支持Nginx

本篇成立的起因为,博主某天突然脑充血申请了一个ssl,然后启用HTTPS协议,全站跳转到HTTPS。BUT,随之而来的问题出现了,SEO肿么办,度娘并不对HTTPS友好。在启用协议的第三天,权重掉了。

但是作为一个强迫症的骚年,必须要又能https,又能SEO。思考了一会后,想到了办法,主要解决的问题是:只要HTTP和HTTPS同时支持访问,让百度蜘蛛走http,用户访问https。

  1. 在wp-config.php中加入以下代码,作用为:匹配当前的访问域名,并且强制后台访问HTTPS(优点,加密访问后台)
$site_url = (isset($_SERVER['SERVER_PORT']) && ('443' == $_SERVER['SERVER_PORT']) ? "https://" : "http://") . "www.shknn.com";
define('WP_SITEURL', $site_url);
define('WP_HOME', $site_url);
define("WP_CONTENT_URL", $site_url . "/wp-content");

/*  强制使用SSL进行登录和后台管理  */
define('FORCE_SSL_LOGIN', false);
define('FORCE_SSL_ADMIN', true);

2.根据user-agent来判断是否为百度蜘蛛,以下代码请自行加入nginx适当位置,红色网址修改为自己的HTTPS地址

set $spider_flag 0;
        if ( $http_user_agent !~* "Baiduspider" ) { 
                set $spider_flag "${spider_flag}0";
        }   
    
        if ( $server_port ~ "80" ) { 
                set $spider_flag "${spider_flag}0";
        }   
 
        if ( $spider_flag = "000" ) { 
                rewrite (.*)$ https://www.shknn.com$1 permanent;
        }

评论已关闭!

目前评论:3   其中:访客  2   博主  1

  1. avatar 世界那么大 0

    回访来了 支持一下

  2. avatar Mike 0

    FORCE_SSL_LOGIN 那里也要设置为true吧 OVO
    另外把链接换成 // 而不是 http:// 或者https:// 会不会更好?

    • avatar 朔月

      @Mike 不用,admin true就行,整个后台都会启用HTTPS,而像你说的如果改成//的话 所有链接都会强制走https,另外这盘文章已经作废了,百度已经启用全局HTTPS了,能收录HTTPS,