Cloudways怎么设置www和非www跳转?Web Rules和.htaccess两种方法

蜗牛大人Cloudways主机教程

本文含推广链接:通过此链接购买,本站可获得佣金,不影响你的价格。了解详情

给网站绑定域名之后,很多人没有注意到:example.com和www.example.com两个地址都能打开同一个网站。

对访客来说没什么区别,但对搜索引擎来说,它们是两个不同的地址,内容却一模一样,容易造成重复内容,权重也会分散。所以需要选定一个作为主地址,另一个用301永久重定向跳转过去。

本文讲这几件事:

  1. 先决定用www还是非www;
  2. Web Rules方法(Lightning Stack);
  3. .htaccess方法(Hybrid Stack);
  4. HTTPS跳转和www跳转的区别;
  5. 设置之后出问题怎么排查。
本文按Cloudways官方帮助文档整理,文中带标注的截图来自官方文档。Web Rules目前是官方的“公开预览”功能,名称和位置可能会调整,以你后台实际显示为准。

先决定:用www还是不用?

没有标准答案,两种都可以,只要统一。

  • 非www(example.com):地址短,目前新网站选这种比较多;
  • www(www.example.com):老网站用的多。

选的时候记住一条:老网站搬家,保持原来的地址不变。原来是www.example.com,搬到Cloudways之后还是用www,不要为了好看改掉,否则要重新做一次跳转,搜索引擎里的排名也会受影响。迁移之后的SEO处理见《换主机、网站搬家后怎么保住SEO排名?》。

设置跳转之前的准备

  1. 两个地址都要能访问:根域名和www的DNS记录都要添加。www可以是指向服务器IP的A记录,也可以是指向根域名的CNAME记录,否则www打不开,也就没法跳转。添加根域名的时候,Cloudways会自动带上www别名;
  2. 在「Domain Management」里设置主域名:选你想用的那个,点击「Make Primary」。设为主域名之后,WordPress里的网站地址会跟着改,步骤见《Cloudways建站教程》;
  3. SSL证书要同时覆盖两个地址:不然跳转前后会有一个提示不安全,见《Cloudways SSL证书安装失败、不自动续期怎么办?》;
  4. 看一下网站用的是哪种运行环境(Stack):Lightning Stack用Nginx,不支持.htaccess,要用Web Rules;Hybrid Stack用Apache和Nginx,可以用.htaccess,也可以用Web Rules。运行环境的区别见《Cloudways网站怎么加速?》。

方法一:Web Rules(不用写代码)

官方的Web Rules功能,用来在后台管理跳转、重写和响应头,不用自己改.htaccess。它最初是为Lightning Stack设计的,Hybrid Stack也可以用。

第一步:打开Web Rules

进入网站的管理面板,点击左侧菜单的「Web Rules」。

Cloudways怎么设置www和非www跳转?Web Rules和.htaccess两种方法(图 1)
Cloudways怎么设置www和非www跳转?Web Rules和.htaccess两种方法(图 1)

页面分「Header Rules」(响应头规则)和「Rewrite Rules」(重写规则)两个页签,www跳转在「Rewrite Rules」里设置。

第二步:添加跳转规则

在「Rewrite Rules」页签点击「Add Rule」,按官方的“www跳转到非www”示例填写:

字段填写
ActionPermanent redirect(301 status code)
Source/*
Destinationhttps://example.com/(改成你的域名)
Attach condition打开
Condition TypeHost
OperatorEquals(=)
Valuewww.example.com(改成你的域名)

意思是:访问的主机名等于www.example.com时,永久跳转到https://example.com/。

反过来想把非www跳转到www,把Destination改成https://www.example.com/,条件的Value改成example.com即可。

Cloudways怎么设置www和非www跳转?Web Rules和.htaccess两种方法(图 2)
Cloudways怎么设置www和非www跳转?Web Rules和.htaccess两种方法(图 2)

规则的表单里还有一项「Keep or discard original query string」,选true表示保留网址后面的参数(比如?id=1)。

Cloudways怎么设置www和非www跳转?Web Rules和.htaccess两种方法(图 3)
Cloudways怎么设置www和非www跳转?Web Rules和.htaccess两种方法(图 3)

第三步:测试

保存之后马上测试:在浏览器里分别访问www和非www的地址,看有没有跳转到你设置的那个,网站的首页和内页都要试。

Web Rules的限制

  • 每个网站最多25条重写/跳转规则;响应头规则最多10条;
  • 每条规则只能附加一个条件;
  • 规则太多或者条件复杂,官方建议用Hybrid Stack加.htaccess;
  • 官方建议尽量不要超过25条规则,少用复杂和连环的条件。

方法二:.htaccess(Hybrid Stack)

网站用的是Hybrid Stack,也可以直接在.htaccess文件里加规则。官方提供的两条规则:

强制跳转到非www:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

强制跳转到www:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]

把example.com换成你自己的域名。需要注意:

  1. 官方示例里跳转的目标写的是http://。网站已经启用HTTPS的话,建议改成https://,避免多跳转一次;
  2. 修改.htaccess之前,先手动备份一次,写错了会导致整个网站打不开,备份方法见《Cloudways怎么备份和恢复网站?》;
  3. 修改文件的方法:通过SFTP或SSH连接,见《Cloudways后台常用设置:SFTP/SSH连接、PHP参数修改、Staging测试站》;
  4. 网站是WordPress的话,规则要写在# BEGIN WordPress那一段之前,不然可能被WordPress自己的规则抢先处理。

如果网站用的是Lightning Stack,.htaccess文件不起作用,写了也没有效果,改用方法一。

HTTPS跳转和www跳转,是两回事

解决什么问题在哪里设置
www跳转统一www和非www两个地址Web Rules或.htaccess
HTTPS跳转把http://跳转到https://安装SSL证书后点击「Enable HTTPS」,或者在「Application Settings」里设置

最理想的结果,是不管访客输入下面哪一个,最终都落在同一个地址上:

http://example.com
http://www.example.com
https://example.com
https://www.example.com

官方对HTTPS跳转有一条提醒:如果已经在Cloudflare、Sucuri、WordPress插件或者.htaccess里设置过HTTPS跳转,不要再在Cloudways平台上开启,多处同时跳转,容易出现“重定向次数过多”的错误。

设置之后出问题,怎么排查?

现象可能的原因处理办法
浏览器提示“重定向次数过多”多处跳转互相冲突,比如Cloudways、Cloudflare、插件各设了一遍只保留一处,其他的关掉;Cloudflare的SSL模式不要选“灵活”,见《Cloudways怎么用免费Cloudflare?》
同上规则把访客重定向回了自己,形成循环检查规则的Source和Destination,别让目标地址又匹配同一条规则
跳转没生效(Lightning Stack)规则写在了.htaccess里Lightning Stack不读.htaccess,改用Web Rules
www地址打不开www没有解析记录添加A记录,或者指向根域名的CNAME记录
跳转后提示证书不安全SSL证书没有覆盖跳转后的地址重新安装证书,把根域名和www都加进去
改了规则没变化浏览器缓存了旧的301结果换无痕窗口测试,用了Cloudflare的话清除缓存

浏览器会把301缓存很久,测试时用无痕窗口,或者用不同的设备,不然可能一直看到旧的结果。

常见问题

用了Cloudflare,在哪里设置跳转?

Cloudflare自己也能设置跳转规则,但本文只讲Cloudways上的两种方法。不管用哪里,原则是只设置一处,不要重复。

Web Rules的“公开预览”是什么意思?

官方说明,公开预览是提前开放给用户测试和使用的功能,会按逐步推出的方式更新。功能可以用,但按钮和名称以后可能会调整。

要不要给www和非www都装SSL证书?

要。官方的说明里,只给根域名装证书,访客输入www的地址时,浏览器会提示不安全。

跳转会影响SEO吗?

301永久重定向是搜索引擎推荐的做法,用来告诉搜索引擎哪个是主地址。官方的建议是永久跳转用301,只有临时的跳转才用302。

总结

www和非www要统一成一个地址。在Cloudways上,网站用Lightning Stack,就用后台的Web Rules:「Rewrite Rules」里添加一条301跳转,条件选Host等于你不想用的那个地址。Hybrid Stack也可以在.htaccess里加官方提供的两条规则之一。

跳转之后,用无痕窗口测试四个地址都能落到同一个地址,SSL证书覆盖两个域名,并且HTTPS跳转只在一个地方设置。

更多Cloudways的使用教程,可以查看《Cloudways主机教程汇总》。

文章版权归作者所有,转载请注明出处:https://woniune.com/posts/cloudways-www-non-www-redirect/
上一篇Cloudways上能用WP Rocket吗?和Breeze怎么选、能不能同时装、怎么配置

相关推荐