存档

文章标签 ‘301重定向’

在 Apache 服务器上实现 301 重定向

2010年4月11日 12 条评论

关于为什么要301永久重定向,以及301永久重定向在IIS 服务器实现,在卢松松上的 详解 301永久重定向 一文中已经有很详细的说明了,我就想在这里详细列一下在Apache 服务器上实现 301 重定向的方法,因为现在(估计将来也是)我用的还是国外的服务器较多,而国外的服务器大部分都是用 Apache 的。

1、使用 cPanel 来设定

很简单的自动完成的方式:登陆 cPanel–>Domain–>Redirects,按要求选择相应的选项即可完成设置就可以了。

2、直接手工编辑 .htaccess 文件

其实,使用 cPanel 设定也是修改了 .htaccess 文件,只不过cPanel 把这个过程可视化了而已。本人对 .htaccess 文件的写法也不太懂,通过古鸽收集了几种情况下的代码,经过测试是可以达到301 重定向的目的的,罗列如下:

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

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.php 到 otherdomain.com/otherfile/other.php

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

其中,RewriteEngine On 是要将 RewriteEngine 模式打开,如果 .htaccess 文件已经有这句了,就可以省掉了。

分类: 互联网络 标签: