星期四, 16 10 月, 2025
技术使用.htaccess强制...

使用.htaccess强制https和www跳转,多域名通用配置

当你的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”的前面才能生效!

安 眠药
安 眠药
我只担心一件事,就是死前还没有把这个世界看完...
相关文章

发表评论

请输入你的评论!
请在此输入您的姓名

- 小编推荐 -
iplc专线节点

评论最多

最近的评论

安 眠药浅谈机场节点事儿
一懒众衫小浅谈机场节点事儿
安 眠药浅谈机场节点事儿