.htaccess文件 301 网页永久重定向的实现

在网站建设中,时常会遇到需要网页重定向的情况:网站调整,改变网页目录结构,网页被移到一个新地址,因应用需要改变网页扩展名,把.php改成.Html或.shtml等,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息(页面不存在),访问流量白白丧失;又或者某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点。

常用的重定向方式 有: 301 redirect, 302 redirect 与 meta fresh:

301重定向(301 redirect)又叫301代表永久性转移(Permanently Moved),将各种网络请求重新定个方向转到其它位置,是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。

302 redirect: 302代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,如Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎误判为spam而遭到惩罚。

meta fresh: 2000年前比较流行,现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为 spam。

这里我们主要谈谈两种情况下的301重定向方法。

注意:在设置 301 重定向之前务必备份相应目录下的.htaccess文件。
一、域名的重定向。

1.重定向domain.com到www.domain.com

这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.domain.com到domain.com也是出于同样的原因,只是形式不同。打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)

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

2.重定向www.domain.com到domain.com

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

3.重定向olddomain.com到www.newdomain.com

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

4.重定向olddomain.com to newdomain.com

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]

5.使用Unix网络服务器的用户,重定向olddomain.com to newdomain.com,也可以使用

Redirect 301 / http://www.newdomain.com/

或者也可以使用
Redirect permanent / http://www.newdomain.com/
二、网页的重定向。这里也可以分为两种情况。

第1种,只有少量网页需要重定向,方法如下:

Redirect permanent aaaa.com/old.html www.aaaa.com/new.html

第2种,重定向domain.com/file/file.php 到 otherdomain.com/otherfile/other.php

RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^file/file.php$ http://www.otherdomain.com/otherfile/other.php [R=301,L]

使用Unix网络服务器的用户,网站的导航的一个栏目改了路径时的重定向方法。原路径为/old/,新路径为/news/的情况如下:

Redirect permanent aaaa.com/old/ www.aaaa.com/new/

将网页old.html内容重 定向到http://www.aaaa.com/new-url/

redirect permanent /old.html http://www.aaaa.com/new-url/

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注