htaccess实现301重定向的方法

htaccess实现301重定向的方法

😂 这篇文章最后更新于3292天前,您需要注意相关的内容是否还可用。

平常访问一些网站看到使用301重定向跳转功能同时又根据百度优化建议,总想完善和优化一下自己的博客。于是向空间提供商"世纪东方"咨询了我所使用的空间支不支持301重定向功能,在得知到肯定的答复后并提供了代码。用.htaccess实现301重定向的前提是虚拟主机必须是Apache服务器或支持伪静态,Linux主机还好说,可以利用.htaccess文件写伪静态规则。就设置方法和我所遇到的问题如下:

经过本人测试和正在使用的301重定向代码:

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

1.用htaccess实现301重定向的前提是虚拟主机必须是Apache服务器或支持伪静态,不然就免谈。

2.新建htaccess文件,由于Windows下不能创建.htaccess文件,htaccess文件我们需要在桌面用记事本新建一个htaccess文本文件,把代码放复制到文件内,把htaccess文件用FTP软件上传到空间根目录下,再把htaccess文件重命名为“htaccess”即可。

3.把不带"www"前缀域名和带"www"前缀域名都需要绑定和解析到空间,这样才能301跳转。当你需要把不带www的域名huhen.com跳转到带www的域名www.huhen.com时代码就写成"RewriteCond %{HTTP_HOST} !^www.huhen.com$ [NC] RewriteRule ^(.*)$ https://huhen.com/$1 [L,R=301] "而不是"RewriteCond %{HTTP_HOST} !^huhen.com$ [NC] RewriteRule ^(.*)$ https://huhen.com/$1 [L,R=301] "这样是错误的,我以前设置没有成功就是犯这样的错误。

把不带www的域名跳转到带www的域名正确代码写法:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.huhen.com$ [NC]
RewriteRule ^(.*)$ https://huhen.com/$1 [L,R=301]

把不带www的域名跳转到带www的域名错误代码写法:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^huhen.com$ [NC]
RewriteRule ^(.*)$ https://huhen.com/$1 [L,R=301]

演示地址:http://my.huhen.com 当你访问my.huhen.com跳转到blog.huhen.com说明设置成功。301重定向查询工具:http://www.sjchaxun.cn/http/ 当返回值为:Http/1.1 301 Moved Permanently表示301重定向成功访问,为网站永久重定向时的状态。

后续:目前小虎博客huhen.com所使用的是刚换的独立IP主机与没有到期的老空间相比,没有到期的老空间支持301重定向但访问速度不行还有待改善,独立IP虚拟主机不支持301重定向但访问速度快,支持独立IP有利于搜索引擎收录。两个空间各有优势,真是鱼与熊掌不可兼得。