Apache下修改.htaccess实现301重定向方法汇总

逍遥乐IT博客和逍遥乐的其他网站都是用的程序,如常见的以及discuz等,伪静态和重定向是必须要做的!如www转向不带www的,反之亦然,或者说某一个地址进行跳转等等。通常我们做都是修改网站根目录下文件。出于SEO、PR值传递、网址转换的目的,在网站初建和网站迁移时我们都需要使用301重定向,通常包括域名对域名,目录对目录和一个独立网址对另一个独立网址的重定向。在主机上作301重定向,最常用的方法有2种:
1.直接编辑网站根目录的.htaccess。
2.直接在主机面板进行设置。
实际上二者都是一样,都是修改.htaccess文件,只是前者手工编辑,后者是由主机控制面板完成的。用控制面板很简单,我在这里就不叙述了。

注:.htaccess只适用于环境中,其他环境并不适用!

下面讲一下直接编辑.htaccess的方法。
注意:在设置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.重定向domain.com/file/file. 到 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]

以上大致就这些,这些事逍遥乐收集自网络,可供大家参考!