NOTE:SSL协议是 NetScape 公司于 1994 年提出的一个关注互联网信息安全的信息加密传输协议,其目的是为客户端(浏览器) 到服务器端之间的信息传输构建一个加密通道,此协议是与操作系统和 Web 服务器无关。同时, NetScape 在 SSL协议中采用了主流的加密算法(如: DES 、AES 等) 和采用了通用的 PKI 加密技术。目前, SSL已经发展到 V3.0 版本,已经成为一个国际标准,并得到了所有浏览器和服务器软件的支持。
下面介绍怎么利用wordpress提供的api来重写链接。这个方法优点是可逆,不会对网站的数据库有什么影响,可以使网站在HTTP和HTTPS之间自由转换。
- 增加wordpress转换函数
在使用的主题(themes)的目录下的 function.php加入如下代码://转换http为https function change_ssl(){ if( is_ssl() ){ function change_ssl_main ($content){ $siteurl = get_option(\'siteurl\'); $upload_dir = wp_upload_dir(); $content = str_replace( \'http:\'.strstr($siteurl, \'//\'), \'https:\'.strstr($siteurl, \'//\'), $content); $content = str_replace( \'http:\'.strstr($upload_dir[\'baseurl\'], \'//\'), \'https:\'.strstr($upload_dir[\'baseurl\'], \'//\'), $content); return $content; } ob_start(\'change_ssl_main\'); } } add_filter(\'get_header\', \'change_ssl\');
- 调整wordpress网站配置
修改wordpress后台配置中的地址改为https版本
注意:一定要保证https和http两种方式都能正常访问网站,才能改这个配置,否则可能导致网站无法访问。
- 整站301跳转
整站如果启用HTTPS后运行正常,就可以开始考虑进行整站301跳转了。如果是Apache服务器,在.htaccess文件添加如下代码:
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.watch-life.net/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^watch-life.net [NC] RewriteRule ^(.*)$ https://www.watch-life.net/$1 [L,R=301]
如果是Nginx服务器,在nginx.conf配置如下代码:
server { listen 80 default_server; server_name www.watch-life.net; return 301 https://$server_name$request_uri; }
以上代码,更换相应的域名即可使用。注意修改或增加配置代码后,需要重启web 服务器。重启后,访问原来HTTP的版本,看是否301跳转为HTTPS的版本。
自此,WordPress整站开启HTTPS开启工作全部完成。后续就是观察各大搜索引擎抓取、收录的情况。