不带www顶级域名自动跳转访问二级域名:根域名301重定向www

如果WordPress网站同时包含了2个域名(带有www域名和没有www域名)都能访问时,是非常不利于SEO权重的集中,以及后续的搜索引擎优化收录。

我们该如何解决?

这需要将不带 www 的域名永久 301 重定向到带 www 的域名。

不带www顶级域名跳转访问二级域名:根域名301重定向www

网站根域名301重定向www域名好处

好处是可以提升域名权重。

301重定向实际上是域名权重的转移。

例如,当 chenweiliang.com 重定向到 www.chenweiliang.com 时,实际上是把 chenweiliang.com 的权重转移到了 www.chenweiliang.com ,从而提升了 www.chenweiliang.com 的域名。

  • 提升搜索引擎优化效果;
  • 有利于网页权重传递;
  • 优化网页收录。

当我们打开电商网站时,会出现两个完全相同的页面。

  • 这时,搜索引擎蜘蛛会反复爬取。
  • 重复的页面会导致搜索引擎的误判。
  • 这时候就需要使用301重定向来处理,优化网页收录;

更好的用户体验:没有重复的页面,用户会更好地记住我们的网站,提高网站的记忆力,获得更好的用户体验。

网站不带 www 二级域名的缺点

  • 少数用户可能无法将 etufo.org  识别为网址;
  • 少数用户只会识别带 www 网址格式的二级域名 www.etufo.org

顶级域名如何301重定向到www?

以下是基于Linux服务器实现的解决方案。

第 1 步:新建.htaccess文件

通常我们的电脑使用Windows操作系统,是不能直接新建.htaccess文件。

必须先新建一个htaccess.txt文件,后面会介绍如何修改名称。

第 2 步:将以下代码复制到txt文档中

RewriteEngine On
RewriteCond %{http_host} ^chenweiliang.com$ [NC]
RewriteRule ^(.*)$ http://www.chenweiliang.com/$1 [R=301,L]
  • “RewriteEngine On”,开启Rewrite Rule开关;
  • “RewriteCond” 是指重写条件。
  • 之后的字符串由正则表达式匹配,匹配的字符串以 ^ 开头,以 $ 结尾。
  • 这里 %{http_host} 是获取当前主机名。 条件为“当主机名为 chenweiliang.com”时,将执行以下重写规则。
  • “[NC]”表示不区分大小写;
  • “RewriteRule”,定义重写规则。 这里的意思:跳转到URL中“ http://www.chenweiliang.com/ ”访问请求 chenweiliang.com 之后的部分。
  • [R=301]表示重写为301重定向/跳转([R]单指跳转,与[R=302]含义相同),[L]表示最后一条匹配规则。

第 3 步:上传htaccess.txt文件并修改名称

使用FTP工具将htaccess.txt文件上传到网站根目录,改名为“.htaccess”,注意前面有个点。

  • 如果文件已存在,请将代码复制到其中。
  • 这样,当你访问一个不带www的域名时,它会自动重定向到带www的域名。
  • 通过上面的方法,不带www域名可以自动跳转到带www的域名。

注意事项:这里修改后可能会发现文件丢失了。

这是因为“.htaccess”文件被视为隐藏文件,不会显示。

可以打开FTP工具,这里以XFTP软件为例,在【工具】→【选项】 ▼

这是因为“.htaccess”文件被视为隐藏文件,不会显示。  可以打开FTP工具,这里以XFTP软件为例,在【工具】→【选项】 第2张

【常规】→勾选【显示隐藏文件】 ▼

【常规】选项 → 勾选【显示隐藏文件】 第3张

 

在此分享通用的带 www 域名重定向到不带www的域名规则,以及不带www的域名跳转到带www的域名规则。

带 www 域名重定向到不带www的域名规则

将带www的顶级域名301重定向到根域名规则 ▼

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

以下带www的顶级域名301重定向到根域名规则,可直接复制(无需修改规则里的域名) ▼

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

不带www的顶级域名跳转到带www的域名规则

不带www的顶级域名跳转到带www的域名规则 ▼

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

以下不带www的顶级域名跳转到带www的域名规则,可直接复制(无需修改规则里的域名) ▼

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

301重定向规则位置问题

在伪静态规则下,放置重定向跳转规则时,通常会遇到 http 无法全站重定向到 https 的问题。

最初我们将重定向代码复制到.htaccess中,它将出现在以下情况 ▼

重定向规则 [L] 在上面 第4张

  • [L]表示当前规则是最后一条规则,停止分析后面重写规则。
  • 因此在访问重定向的文章页面时,[L]停止了后面的规则,所以重定向规则不能起作用。

访问http主页时,我们希望触发网址重定向,跳过伪静态规则以执行重定向跳转规则,以便可以实现全站 http 重定向到 https

不要将https重定向规则放在 [L] 规则的下面,要放在 [L] 规则上面 ▼

伪静态SSL重定向规则 [L] 在下面 第5张

网站主域名有没有必要重定向www?

如果你直接使用如 chenweiliang.com 这样的顶级域名作为你的博客域名,那么使用子域名作为图床不能实现Cookie-free。

  • 因为顶级域名 chenweiliang.com 会向所有被请求的静态文件的二级域名服务器发送cookie。

如果你想支持Cookie-free的图床,则需要使用不同的域名来实现Cookie-free。

  • 陈沩亮博客使用 www.chenweiliang.com 的子域名没有问题。

详情请浏览此文 ▼

如果需要排除301重定向绕过伪静态例外文件夹目录,请查看下方教程 ▼

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动到顶部