转址是将一个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的配置文件或.htaccess文件来验证它是否运行中:

 

RewriteEngine On

 

背景执行

mod_rewrite模块在每个服务器背景或每个资料夹中执行。

要在服务器的背景执行,会要求开发人员必须可以编辑Apache的httpd.conf文件,需要在每个资料夹背景执行的话,每个资料夹是必须要有.htaccess文件,如果网站管理员不能访问httpd.conf,他们将不得不使用.htaccess文件「使用.htaccess去阻止不需要的访客到你的网站」。

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

维基百科解说:

正规表达式是根据特定语法规则描述或匹配一组字符串的字符串,正规表达式被许多文件编辑器和实用程序用来根据特定模式来搜寻和操作文件主体。

正规表达式对程序员和系统管理员来说是一项宝贵的技能,要根据本文中的范例重定向URL,了解使用正规表达式的基本知识很重要,以下是描述正规表达式中使用的参数和运算参数的列表:

 

. 点-匹配任何事情

 

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

 

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

 

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

 

(value1|value2) 将两个或多个值括在括号中,并用|字符分隔它们相当于说:“匹配值1或值2”

 

将特定网页和资料夹从一个网址重定向到另一个网址

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

范例

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.benny.vip,则转址到www.benny.vip;www.benny.vip前面的惊叹号(!)为否定判断,意思是说:“如果主机不是www.newscan.com.tw,则执行RewriteRule”,在目前的情况下,RewriteRule将它们转址到www.benny.vip,同时保持它们在后面引用的确定网页名称。

转址后不保留网页名称

旧服务器上存在的一些网页在新服务器上并不存在,旧网页需要转址到新网址的根网址,而不是在转址中保留网页名称(这将导致新服务器找不到网页,而发生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…

实作

添加以下程序码:

 

RedirectMatch 301 /seo/guide/(.*).(php|html) http://www.seomoz.org/articles/$1.php

 

说明

(*.)匹配零个或多个任何字符并将其保存为反向引用 $1. .(php|html)告诉apache匹配结束,后跟“php”或“html”,并将其保存为反向引用$2(本例中不使用),注意跳脱字符的反斜线,这是为了确保apache不会把这个解释为“任何事件”,将括号中的“php”和“html”括起来,并用“|”字符表示,以匹配其中一个值。 所以如果是(php | html | css | js | jpg | gif),那么正规表达式将匹配任何带有副档名的php、html、css、js、jpg或者gif的档案。

结论

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

发表回复

后才能评论