转址 - Redirection

作者:码迷 阅读:287 点赞:50

转址 - Redirection/

转址 - Redirection

转址是将一个URL跳转到另一个URL的过程。主要有三种转址:301,302和meta refresh。

转址的种类

  • 301永久转址-SEO推荐使用

  • 302临时(暂时)转址

  • meta refresh跳转

什么是转址?

转址是一种将访客和搜索引擎,从原来的URL跳转到不同的URL的方式,以下是转址常用种类的叙述。

301Moved Permanently

301永久转址是永久的转址,它将90-99%的链接权重(排名能力)传递给转址的网页。

302 Found (HTTP 1.1) / Moved Temporarily (HTTP 1.0)

Google的一些员工表示,有些情况下,301和302可能会以类似的方式处理,但是我们的证据显示,如果要确保搜索引擎和浏览器不被影响,使用301永久转址才是最安全的方法,互联网也称为非常文本传输协议(HTTP)的协议,该协议规定了URL的工作方式,它有两个主要版本1.0和1.1,在第一个版本中,302指的是状态码“Moved Temporarily-暂时移动”,这在版本1.1中改变为“Found-存在”。

307 Moved Temporarily (HTTP 1.1 Only)

307转址是302转址的HTTP 1.1后续,虽然主要的搜索爬虫在某些情况下会像302一样处理,但在全部情况下还是最好使用301,只有当内容只是暂时移动(例如在维护期间)可以例外处理,并且服务器已经被搜索引擎确定兼容1.1版本。

Meta Refresh

Meta Refresh是一种在网页层面,而不是服务器层面上运行的转址,他们通常比较慢,并且是SEO不推荐的技术,他们通常使用和倒数计时相关的文本一起使用如:“你如果没有在五秒跳转,请点击这里”,Meta Refresh也会传递一些链接权重,但不建议作为搜索引擎优化技术使用,因为有可能流失过多的网页权重。

SEO最佳实践

一般要制作将一个URL转址到另一个的时候,必需观察是否有将远本的网页权重保留至另一个网页是非常重要的。

如果需要把Page A 永久转址到 Page B时,有多种方式可以选择,但一般来说,301转址对于用户和搜索引擎都是有用的,运行301来指示浏览器和搜索引擎机器人网页已经被永久(移动)转址,搜索引擎理解这意味着,不仅网页移动了位置,而且内容(或更新版本)可以在新的URL中找到,搜索引擎将从原始网页链接到新的URL。

但是从一个URL移动网页时,另一个搜索引擎将需要一段时间才能发现301转址并且承认它,并且将会评断之前网页的排名和信任度后再来评断新的网页的价值,如果搜索引擎蜘蛛很少访问特定的网页,或者新的URL没有正确解析过,这个过程可能会更长。

转址的其它选项,如302s和meta refreshes,并不是好的替代方式,因为它们通常不会像301转址那样继承排名和搜索引擎价值,唯一会使用如此转址的原因可能是,网站管理员刻意不想让旧的网页权重继承到新的网页。

当全部网站都需要更新网址,或者内容必须从一个网址移到另一个新网址时,转址的内容变得更复杂,由于垃圾邮件发送泛滥导致搜索引擎的质疑,所以网址之间的301转址,有可能需要更多的时间才能被正确的扫描和计算。

由服务器301转址

提问:

当moz.com推出第一个网站seomoz.org时,当时它的网站网址是www.socengine.com/seo/,当时不是属于自己的网址,当程序开发人员打算移到自己的专用服务器上时,他们希望可以转到为自己的网址,而不是在socengine.com/seo/的子目录浏览,但是他们需要先访问www.socengine.com/seo/中的网页才能转址到www.seomoz.org,转址必须适应多个网页和文档夹名称的改变,并且必须用301转址来完成,以便友善搜索引擎,也需要转址到http://seomoz.org,为美观的目的并也避免规范化错误。

解说:

最简单的方法就是将301转址添加到PHP代码中,使用PHP的header表头功能为seomoz.org提供转址,也可以利用apache模块mod_rewrite的强大功能,开发人员明白apache有可以匹配全部文档夹的特定模式,并全部将其转址到新的URL,不需要逐一撰写每个PHP脚本。

操作:

如果要运行apache这个方式,Web服务器需要安装apache模块mod_rewrite。

大多数apache已经缺省安装mod_rewrite,要检查模块是否已安装,开发人员可以将下行添加到apache的配置文档或.htamless文档来验证它是否运行中:

RewriteEngine On

背景运行

mod_rewrite模块在每个服务器背景或每个文档夹中运行。

正规表达式(又名正则表达式)

维基百科解说:

  • . 点-匹配任何事情

  • * 星号-匹配零个或多个前面的字符

  • + 加号-匹配一个或多个前面的字符

  • () 圆括号-用圆括号括起一个值,将存储之后所使用的变量中匹配的内容

将特定网页和文档夹从一个网址重定向到另一个网址

程序开发人员需要从旧服务器重定向到相同网页名称的新服务器。

范例

Redirect: http://www.socengine.com/seo/s... To: /somefile.php

实作

将以下代码添加到服务器上的适当位置上:

RedirectMatch 301 /seo/(.*) /$1

说明

正规表达式/seo/(.*)告诉apache匹配seo文档夹,后跟零个或多个任何字符,围绕括号中的*表示Apache将保存匹配的字符串作为反向引用,这个反向引用被放置在指向的URL的末尾,在这种情况下是$1。

主机名称转址规则

程序开发人员需要转址任何不以www.seomoz.org开头的请求(将没有www开头的seomoz.org网址),以确保他们包含www,他们这样做不仅为了看起来更美观,而且还可以避免常见的规范化错误

Redirect: http://seomoz.org/

To: http://www.seomoz.org/

Redirect: http://mail.seomoz.org/

To: http://www.seomoz.org

Redirect: http://seomoz.org/somefile.php To: http://www.seomoz.org/somefile...

实作

添加以下代码:

RewriteCond %{HTTP_HOST} *!^www*.seomoz.org [NC]

RewriteRule (.*) https://newscan.com.tw/$1 [L,R=301]

说明

这个代码告诉apache检查访客正在访问的主机,如果它不是www.newscan.com.tw,则转址到www.newscan.com.tw;www.newscan.com.tw前面的惊叹号(!)为否定判断,意思是说:“如果主机不是www.newscan.com.tw,则运行RewriteRule”,在目前的情况下,RewriteRule将它们转址到www.newscan.com.tw,同时保持它们在后面引用的确定网页名称。

转址后不保留网页名称

旧服务器上存在的一些网页在新服务器上并不存在,旧网页需要转址到新网址的根网址,而不是在转址中保留网页名称(这将导致新服务器找不到网页,而发生404错误)。

Redirect: http://www.socengine.com/seo/s...

To: http://www.seomoz.org/

实作

添加以下代码:

RedirectMatch 301 /seo/someoldfile.php http://www.seomoz.org

说明

省略任何括号,所有对/seo/someoldfile.php的请求都应该转址到http://www.seomoz.org的根网址

转址GET字符串

一些PHP网页有不同的名字,但GET字符串保持不变,程序开发人员需要将访问者转址到新的PHP网页,同时保留这些GET字符串,GET字符串是URL中的网页名称之后的字符集,用于将数据传递给网页,URL /myfile.php?this=that&foo=bar中的GET字符串的范例将是?this =&foo = bar。

Redirect: http://www.socengine.com/seo/c...

To: http://www.seomoz.org/artcat.p...

实作

添加以下代码:

RedirectMatch 301 /about/company.php(.*) https://www.newscan.com.tw/company.php$1

说明

正规表达式(.*)再一次告诉apache匹配零个或多个任何字符并将其保存为反向引用$1,由于company.php后面有$1,现在将把get字符串转址到这个新的PHP网页。

转址,改变扩展名

在原来的情况下,旧的服务器上有混合了HTML和PHP的网页的数据,在新的服务器上,这些文档都是PHP,并且需要转址逻辑来将旧的URL更改为新的扩展名。

Redirect: Redirect: http://www.socengine.com/seo/g...

To: To: http://www.seomoz.org/articles...

Redirect: http://www.socengine.com/seo/g...

To: http://www.seomoz.org/articles...

实作

添加以下代码:

说明

结论

通过使用mod_rewrite的能力和正规表达式的魔力,程序开发人员开发了一套简单的转址网页的规则,通过使用301转址,使用搜索引擎友善的方式做到了这一点。

数据源:

本文网址: https://www.mamioo.com/seo-google/nv2582an7943

本站内容均为「码迷SEO」原创整理,未经授权严禁采集转载,违者必究。