当你的WordPress网站安装SSL证书后,就可通过http和https访问了。但是,小编只建议使用https来访问网站,因为它会加密和保护您网站的数据,同时搜索引擎已经将https作为网站排名的一个重要因素,因此网站想要获得好的SEO排名,那么采用https访问必不可少。
ℹ️ 开始之前
a、确认您的网站已经配置好SSL证书并开启了https访问;
b、确认您的主机或服务器的运行环境是Apache阿帕奇;
如果以上都ok,我们即可进行下一步配置了。
🅰️ 为什么要修改.htaccess文件
这个问题,小编早在2019年就写过一篇文章了(WordPress网站强制https访问解决方案),不过那个时候还没有那么深入,现在再去看,发现了新的问题,所以重新进行补充!补充部分如下:
a、同一个域名,带www与不带www,比如:www.yigeni.com和yigeni.com;
b、同一个域名,有https与http,比如:https://www.yigeni.com/和http://yigeni.com/;
c、同一网站目录多域名,比如:www.yigeni.com与yigeni.cc;
d、同一文章多域名,比如:https://www.yigeni.com/travel/与http://yigeni.cc/travel/;
当然,还有更复杂的情况,小编只是简单列举了一下!
但无论多么复杂,我们最终的目的是要统一网站地址、文章地址,这样才能保证网站权重不分散,集中在同一域名地址,也能让用户有好的体验!假如不统一,拿小编的网站文章举例说明,就会出现:
1、https://www.yigeni.com/netch-tutorial/
2、https://yigeni.com/netch-tutorial/
3、http://www.yigeni.com/netch-tutorial/
4、http://yigeni.com/netch-tutorial/
5、https://www.yigeni.cc/netch-tutorial/
6、https://yigeni.cc/netch-tutorial/
7、http://www.yigeni.cc/netch-tutorial/
8、http://yigeni.cc/netch-tutorial/
此时,你将会看到同一篇文章,有8个地址,那么思考一下,对网站SEO有好处吗?
此处省略一万字…自行体会吧!再说下去搜索引擎没懵b,我已经懵b了,hh…
✅ 最实用常见配置代码
HTTP跳转HTTPS:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
HTTPS跳转HTTP:
RewriteEngine On RewriteCond %{HTTPS} =on RewriteRule ^/?(.*) http://%{SERVER_NAME}/$1 [R,L]
跳转WWW:
RewriteEngine On # 设置%{ENV:PROTO}变量,以允许重写自动使用适当的模式重定向(http或者https) RewriteCond %{HTTPS} =on RewriteRule ^ - [E=PROTO:https] RewriteCond %{HTTPS} !=on RewriteRule ^ - [E=PROTO:http] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ %{ENV:PROTO}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
常用例子1:HTTP跳转HTTPS,且跳转WWW
RewriteEngine On # HTTP跳转HTTPS RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] # 跳转WWW RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
常用例子2:HTTP跳转HTTPS,不跳WWW
RewriteEngine On # HTTP跳转HTTPS RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] # 不跳WWW RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
常用例子3:综合写法
RewriteEngine On # 设置%{ENV:PROTO}变量,以允许重写自动使用适当的模式重定向(http或者https) RewriteCond %{HTTPS} =on RewriteRule ^ - [E=PROTO:https] RewriteCond %{HTTPS} !=on RewriteRule ^ - [E=PROTO:https] # HTTP跳转HTTPS RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) %{ENV:PROTO}://%{SERVER_NAME}/$1 [R,L] # 跳转WWW 且排除本机地址 RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{SERVER_ADDR} !=127.0.0.1 RewriteCond %{SERVER_ADDR} !=::1 RewriteRule ^ %{ENV:PROTO}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
最后,一定要记得:以上代码必须要添加到“# BEGIN WordPress”的前面才能生效!