一直打算上全站https,折腾了半天也算是成功了一半,下面记录一下针对于本站【wordpress+虚拟主机】的笨方法,个人能力有限,都是搜索来的方法,老鸟莫笑。

1.首先证书是肯定要有的,搞个免费的证书OK,阿里就有,还是Symantec的。

2.对于虚拟主机的话,还是要通过CDN的,阿里也有,不过CDN是要花钱的,没有免费配额。访问路径大体是这样的:用户==(https)==CDN==(http)==源站,虽然不是很完美,也算是虚拟主机的一个比较好的解决办法了,毕竟咱也是睾贵的https。

3.进入阿里控制台,cdn,添加域名,配置CDN的SSL,开启HTTPS加速模式,要选择HTTP→HTTPS,关闭CDN的过滤参数。

4.修改DNS解析,CNAME到CDN给出 的地址。

5.(重点)修改wordpress配置文件和数据库

  (1)配置文件修改wp-config.php,在require_once(ABSPATH . ‘wp-settings.php’);之前,添加以下记录。

define(‘FORCE_SSL_ADMIN’, true);
define(‘FORCE_SSL_LOGIN’, true);
$_SERVER[‘HTTPS’] = ‘ON’;
define( ‘CONCATENATE_SCRIPTS’, false );

 

  (2)数据库表:wp_options

  option_name:siteurl,home,ossdl_off_cdn_url三个记录的option_value都从原来的https://www.rousongs.com改成https://www.rousongs.com

  (3)修改主题的function.php,强制wordpress文章中链接的http为https

//=== 替换内容中http链接为https ===//
function my_content_manipulator($content){
  if( is_ssl() ){
    $content = str_replace('https://www.rousongs.com', 'https://www.rousongs.com', $content);
    $content = str_replace('https://www.rousongs.com', 'https://www.rousongs.com', $content);
  }
  return $content;
}
add_filter('the_content', 'my_content_manipulator');

 

  (4)还是修改function.php,强制css/js链接地址http为https,没这个排版全乱了。

//=== 强制css/js链接地址http为https ===//
add_filter('script_loader_src', 'agnostic_script_loader_src', 20,2);
function agnostic_script_loader_src($src, $handle) {
  return preg_replace('/^(http|https):/', '', $src);
}
add_filter('style_loader_src', 'agnostic_style_loader_src', 20,2);
function agnostic_style_loader_src($src, $handle) {
  return preg_replace('/^(http|https):/', '', $src);
}

 

最后完成,好像wordpress后台媒体库功能和在线搜索安装主题插件的功能异常,Who can give me a hand?

已确定这个问题是wordpress主题不兼容,求指导。