利用CDN升级wordpress到HTTPS

siteurl和home

WP数据库wp_options表中有sites url和home两个字段,sitesurl是作为请求资源的站定url,可以直接设置为’/’,home是服务器的主机名。浏览器在请求访问WP时,但凡是走主入口index.php的,WP会比较GET请求头的host是否和home设置的一致,非一致即重定向到home设置的位置

CDN源站地址和回源host

CDN说白了就是转发你的请求资源,根据规则进行缓存,如果是已经缓存过的,就不再从源站读取。比如说你的域名domain.com是解析到CDN服务的,zakka.domain.com是解析到web服务器的,浏览器在返回http://domain.com时,CDN会先到zakka.domain.com读取资源,再转发给你,这样的好处是https就可以在CDN服务中配置了,向up云这样的服务商又提供了免费的https证书申请,利用CDN升级https的思路就是:
浏览器 --https—> CDN,CDN–http–>你的服务器, CDN --https–> 浏览器,实际上只是利用了CDN做了https的转发。
CND的两个基本参数源站地址和回源host,源站地址填的就是你的回源服务器的地址。回源host比较重要(尤其是回源到WP站点),这是决定了CDN去源站GET请求头中的host字段,如果回源host设置为空,那GET请求头中的host即为指向CND的域名。

WP开启HTTPS

第二点中说到CDN可以升级到https,升级WP的站点稍有不同,第一点中提到WP会分析GET请求头中的host字段并做重定向,那就要保证CDN回源的GET中的host和WP数据库中的home值一致。配置思路:
配置域名domain.com解析到CDN地址,CDN回源地址设置为zakka.domain.com (zakka.domain.com解析到web服务器ip),设置CDN的回源host为domain.com(或者不设),设置wp数据库中home为https://domain.com,好理论上已经可以,运行发现访问http://domain.com没有问题,但是访问https://domain.com就有问题(可以用fiddler构造一下请求发现一直在重定向),原来wp并不认为home设置的值(https://domain.com)和CDN GET的host(domain.com)一致,还需要手动开启wp的https功能:在入口文件index.php开头添加:

define('WP_USE_THEMES', true);

// 以下为添加
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

网上很多说这些配置添加在wp-config.php中就可以了,笔者测试在wp-config.php中添加exit;发现站定依旧可以正常访问,因此wp-config.php显然没有作用在所有php的生命周期中,因此笔者添加在了入口index.php中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值