在 Apache 服务器上实现 301 重定向
关于为什么要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 文件已经有这句了,就可以省掉了。
最新评论