最近搬迁了一网站,域名也换成新域名了。想到直接停用旧域名对访客和搜索引擎都不太好,考虑了一下后决定把旧域名301重定向到新域名。这里汇总一下找到的几个简单的301重定向方法。
什么是301重定向?
301重定向(301 redirect)又称为“页面永久性转移”,当用户或搜索引擎访问到网站时,服务器会返回的HTTP数据流中头信息(header)中的301状态码,表示网页永久性转移到另一个地址;对于访客而言网页会自动从旧地址(域名)跳转至新地址(域名)。
301重定向不仅对用户很重要,而且对于搜索引擎也是很重要的,当网站改版后并使用301重定向, 可以让用户或搜索引擎访问到访问新版本的页面,而不是404错误页面。特别是当网站的域名更改后,做好301重定向,可以有效的避免网站流量损失,对于访客和搜索引擎都有利。
301重定向可以通过很多不同方法实现,这里介绍三种比较简单的方法。
域名DNS实现重定向
这个方法算是最简单方便的301方法了。利用域名解析中的自带的向即可,不仅设置方便,修改也很方便。
这里要用到DNSPod的显性URL重定向(与301重定向相同)功能,所以你需要先将域名的DNS解析改为DNSPod才可以。
如下图,在DNSPod的解析页面找到你要重定向的域名记录,然后点击“记录类型”(①处),找到并改成“显性URL”(②处),再在记录值(③处)填入你要跳转的新域名即可。
另外友情提示一下,现在DNSPod使用这个功能需要你的账号已通过邮箱验证且绑定了手机。
除了DNSPod外面,其他一些域名解析服务商也提供301重定向功能(例如过国内的美橙)。如果你的域名未使用DNSPod,可以先咨询一下你的DNS服务商是否支持301重定向,再决定是否转入。
PHP实现
如果你的旧域名还能正常使用(旧站还能正常访问)且空间支持PHP的话,可以直接编写一个PHP页面来实现了301。
将下面代码复制到记事本中,把“目标网址”改为你要跳转到的网址,保存为“index.php ”并上传到你旧空间即可。
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://新网址/");
exit();
?>
使用PHP进行301跳转适合大多数情况,无论你的环境是Apache还是Nginx都没有影响(不清楚这两个的话可以百度一下)。而且如果要实现一些比较复杂的跳转功能,完全可以通过修改PHP代码来实现。这里就不展开说了。
.HTACCESS实现
这个文件是Apache环境下用来设定网址跳转和一些高级功能的文件。例如Wordpress、Discuz、OwnCloud等程序的固定链接、缓存功能都要用到这个文件。
要实现301重定向功能,将下列内容写入空间根目录下的.htaccess文件中。
RewriteEngine on
RewriteRule ^(.*)$ http://www.new.com/$1 [R=301,L]
其中的“www.new.com”替换成新网址。建议备份好旧的.htaccess文件,新建一个.htaccess文件再写入。
注意,利用.htaccess文件跳转将会实现全站301重定向。
全站重定向既保持原网址路径不变,将旧网址对应的页面重定向至新网址。例如旧网址为“www.old.net”,新网址为“www.new.com”,当访问“www.old.net/page.html”时,非全站重定向会跳转到“www.new.com”,而全站重定向会跳转到“www.new.com/page.html”。
检测301重定向是否生效
判断301重定向是否设置成功,一个最简单的办法是用浏览器访问旧网址,如果成功跳转到新网址则代表成功了。
这里以ChinaZ站长工具为例,在输入框中输入旧网址,点击“查看分析”,等待一会后,页面下方会出现结果,如果其中的返回状态码为“301”,则代表设置成功(如下图)。
实际上要实现301重定向还有其他几种方法,这里仅写了三种使用率较高且比较简单的方法。希望能对大家有所帮助。
除特别注明外,本站内容皆为咸鱼先锋原创,可自由引用,但请注明来源和链接。