重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
常用的重定向方式有:301redirect、302redirect与metafresh。
301redirect
301代表永久性转移(PermanentlyMoved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
302redirect
302代表暂时性转移(TemporarilyMoved),在前些年,不少BlackHatSEO(黑帽SEO)曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,像Google前些年对域名之王(Business)以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。
metafresh
这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之内),会被判断为spam。
下面介绍几种网页重定向的方式。
301 重定向也被称为 永久性 重定向,一个网站如果做了 301 重定向,就代表这个网站的全部指标完全转移到了重定向的页面上。
打开浏览器用url搜索百度,有的人喜欢用 www.baidu.com 搜索,有的人喜欢用 baidu.com 搜索。虽然俩个域名看上去一样,其实不然,前者是二级域名,后者是一级域名。而且搜索引擎会把俩个域名分别收录,这时就会造成网站的权重分散,这并不是我们想要的结果,这时就得用到 301 重定向。
让我们看看百度是怎么做的,打开浏览器,在地址栏输入:
和
我们会发现都会跳转到:
打开 chrome 自带的调试工具,我们看到,在输入 baidu.com 时,页面被重新定向到 www.baidu.com ,这里的 302 为临时性重新定向。
如果一个网站更换了程序,比如由php更换到asp,如果不做重新定向,搜索引擎中收录的页面就会变成 404 页面。这时应该做一个重定向,从而更新搜索引擎收录的页面。
如果这些页面还有访问流量的话,应该做一个重定向。
要想在 Apache 下实现 301 重定向,首先应该开启 Apache 的重写模块,在 Apahce 的配置文件 httpd.conf 中找到如下语句:
把前面的注释 # 取消掉。
然后为了让 Apache 支持 .htaccess 文件,在 Apache 的配置文件 httpd.conf 中,找到
把其中的 AllowOverride None 改为 AllowOverride All ,然后重启 Apache ,在网站的根目录创建 .htaccess 文件。
在 .htaccess 文件中添加如下语句:
R代表永久重定向,也可以用 301 或者 302 代替,L代表重写规则终止。NC为忽略大小写
这里运用到了正则,可以参考正则的手册。
由于搜索引擎可以抓取 HTML 内容,所以这种方式是比较推荐的。标签中 content 属性为延时跳转的时间,一定要注意把延迟时间设定成至少 10 秒以上,不然搜索引擎视为作弊行为。
搜索引擎是不会抓取 js 源码的,所以要想避免网站权重转移应该采用这种方式 。
PHP的网页重定向要使用header函数。
网页生成了过多的重定向。清除此网站的 Cookie 或允许第三方 Cookie 可能会解决该问题。如果不能解决,则可能是服务器配置的问题,而不是您的计算机有问题。错误 310 (net::ERR_TOO_MANY_REDIRECTS):重定向过多。其实,浏览器已经提供给我们解决问题的办法了。首先就是清除网站的 Cookie或允许第三方Cookie。不过,对于普通用户而言,可能并不知道怎么清除Cookie。注意:大多数情况下出现这种情况都是由于Cookie或禁用Cookie产生的。下面介绍几个主流浏览器清除Cookie的方法:
第一,对于广大的IE用户,鼠标点击IE图标,打开IE浏览器,“工具”,打开“Internet属性”对话框,找到如图所示(其它选项都不要勾选):
点击删除按钮即可。
第二,对于火狐浏览器(Firefox),打开浏览器,“工具”-“选项”-“隐私”,点击“删除私人cookie”即可。
当然,你也可以下拉选择“从不记录历史”,这样Firefox就不会再保存网站cookie。同样你也可以“使用自定义历史记录设置”,这样你就可以清除或设置cookie有效期。
除此之外,你还可以选择“工具”-“页面信息”-“安全”,这样你就可以仅仅查看和清楚当前网站的cookie。
第三,对于谷歌浏览器(Chrome),“工具”-“清除浏览数据”-“删除cookie和其他网站数据”,这样就清楚了网站cookie。
如果使用这种方法,问题还是没有解决,则基本可以断定就是网站服务器配置的问题。有些站长将网址example.com重定向至www.example.com,由于重定向错误而导致出现此问题。
最后,着重介绍一下wordpress升级到3.1版本导致的重定向过多,从而无法进入首页。
这个可以通过修改以下文件中的任何一个即可解决首页包含过多重定向的问题。这两个文件均位于wp_includes文件夹下。首先,对于canonical.php文件的修改,利用文本编辑器打开该文件,开头注释下面就可以找到如下语句:
function redirect_canonical( $requested_url = null, $do_redirect = true ) {
把true修改为false即可。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)