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

管理员
管理员 2024-3-15

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

第 1 步:新建.htaccess文件

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

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

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

RewriteEngine On
RewriteCond %{http_host} ^dzmvc.com$ [NC]
RewriteRule ^(.*)$ http://www.dzmvc.com/$1 [R=301,L]
  • “RewriteEngine On”,开启Rewrite Rule开关;

  • “RewriteCond” 是指重写条件。

  • 之后的字符串由正则表达式匹配,匹配的字符串以 ^ 开头,以 $ 结尾。

  • 这里 %{http_host} 是获取当前主机名。 条件为“当主机名为 dzmvc.com”时,将执行以下重写规则。

  • “[NC]”表示不区分大小写;

  • “RewriteRule”,定义重写规则。 这里的意思:跳转到URL中“ http://www.dzmvc.com/ ”访问请求 dzmvc.com 之后的部分。

  • [R=301]表示重写为301重定向/跳转([R]单指跳转,与[R=302]含义相同),[L]表示最后一条匹配规则。

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

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

  • 如果文件已存在,请将代码复制到其中。

  • 这样,当你访问一个不带www的域名时,它会自动重定向到带www的域名。

  • 通过上面的方法,不带www域名可以自动跳转到带www的域名。

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

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

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

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

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

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

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

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

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

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

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

RewriteEngine OnRewriteCond %{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张


回帖
  • 消灭零回复

微信二维码

微信二维码

微信扫码添加微信好友