WordPress全站开启https的方法

2018年5月12日07:15:32 9 949 views

开启SSL访问后需要进行一系列设置和修改才能让WordPress全站支持https,我们可以参考以下的方法进行配置。

WordPress全站开启https的方法

 

1、开启访问 HTTPS 301重定向

网站这时候虽然支持了 HTTPS 访问,但是也可以使用 HTTP 来访问,考虑到搜索引擎目前收录的都是 HTTP 链接,需要将http重定向到https。

如果是Apache环境,可直接向网站根目录的.htaccess文件添加下面代码:

  1. /** 网站定制化开启 HTTPS 的301重定向 **/
  2. RewriteCond %{SERVER_PORT} !^443$
  3. RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC]
  4. RewriteCond %{HTTP_HOST} www.liwei8090.com
  5. RewriteRule ^.*$ https://www.liwei8090.com%{REQUEST_URI} [L,R=301] 
  6. /** 注:RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC]这行代码是排除IE8及以上版本浏览器使用HTTPS访问,不需要的话这行可删除。 **/

如果是Nginx环境,打开网站的配置文件,一般是服务器vhost目录下的 网站.conf 文件,在文件最上方添加:

  1. server {
  2.     listen      80;
  3.     server_name    www.liwei8090.com;
  4.     return      301 https://www.liwei8090.com$request_uri;
  5. }

以上完成了网站通过http访问自动跳转到https地址。

 

2、对wordpress文章内的图片及后台强制https设置

wordpress上传的图片都写入了绝对地址,也就是启用https前所有上传到文章的图片都是以http://开头的地址存储,如果不转换成https访问网站时浏览器顶部的“小锁”会在某些浏览器显示安全警告,让图片变成https地址很简单,只需要在当前主题的functions.php文件中添加以下代码:

  1. /** 替换图片链接为 https **/
  2. function my_content_manipulator($content){
  3.     if( is_ssl() ){
  4.         $content = str_replace('http://www.liwei8090.com/wp-content/uploads', 'https://www.liwei8090.com/wp-content/uploads', $content);
  5.     }
  6.     return $content;
  7. }
  8. add_filter('the_content', 'my_content_manipulator');

以上代码可自动将全站所有http地址图片自动转换成https地址图片。

 

3、开启登录和后台https访问

打开网站根目录下的wp-config.php文件,在文件底部添加:

  1. /** 强制后台和登录使用 SSL **/
  2. define('FORCE_SSL_LOGIN', true);
  3. define('FORCE_SSL_ADMIN', true);

修改“菜单”当中的所有“自定义链接”为相对路径;

修改“设置”→“常规”里的“站点地址”和“WordPress 地址”为 HTTPS地址;

WordPress全站开启https的方法

 

以上的步骤基本实现了WordPress全站https,还有一些手动添加的链接或插件需要单独调整。

 

4、百度分享https

目前国内百度分享、jiathis等社会化分享组件插件均不支持https,也就是当你启用https后这些分享功能都不会显示,找了很久终于找到一个大牛贡献的代码,实现了https可用的百度分享功能,代码如下:

<div class="bdsharebuttonbox"><a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"></a><a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a><a href="#" class="bds_sqq" data-cmd="sqq" title="分享到QQ好友"></a><a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a><a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"></a></div>
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='https://dn-iyz-file.qbox.me/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>

 

上面的百度分享https代码已经失效,你可以参考教程WordPress网站上百度分享不支持https来实现百度分享代码本地化,定制可用的https分享代码。

里维斯社

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:9   其中:访客  6   博主  3

    • avatar 情感天地 1

      很详细的教程

      • avatar 阿桑 0

        打算开启先来学习一下

        • avatar ZAERA博客 3

          https确实是个大趋势,挺好折腾的

          • avatar 西枫里博客 5

            今天刚开了个WP新站,https配好了,似乎没在WP里面折腾 :mrgreen:

              • avatar Liwei Admin

                @西枫里博客 西枫大佬厉害,开始生活记录之旅,后面折腾一下还是有意思的

              • avatar boke112导航 6

                很多时候我们都觉得HTTPS很复杂,其实操作起来还是很简单的,教程也多

                  • avatar Liwei Admin

                    @boke112导航 是的,很多教程,而且加上https确实提速不少

                  • avatar 姜辰 6

                    = =、nginx 的那个不错,我也加进去了。

                      • avatar Liwei Admin

                        @姜辰 我之前换https就是这一套方法,确实不错