/ 中存储网

Apache服务器配置http301永久重定向的详细过程

2013-09-11 15:21:18 来源:itjs.cn

最简单的方式添加如下一行配置:

RedirectMatch 301 (.*).asp$ http://www.domain.com/newpage.html

网站有4个域名,搜索引擎里面的权值都不一样,而且还区分有无WWW的,很乱套,推出一个主域名势在必行。这里以本域名举例说明问题。本来以为要在Apache里面配置这几个域名均为虚拟主机配置,在几个非主域名的目录里面只设置一个DOThtaccess文件:RewriteRule ^/(.*)$ http://www.murray.cn/$1 [R=301,L]

最麻烦的就是所有域名空间都要配置成虚拟主机,按主机名而不是IP来访问网站,真怕正在运行的服务器崩溃了。。汗啊。。 没想到最终解决方案这么简单:

RewriteCond %{http_host} !^www.murray.cn [NC]

RewriteRule ^/(.*)$ http://www.murray.cn/$1 [R=301,NC,L]

关键的是这个叹号和最后的这个L。叹号表示非,L表示最终结果,不再循环。 NC是不区分大小写。 另外对个别页面:首页做301转向,这个据说也对SEO非常有利:

RewriteCond %{http_host} ^www.murray.cn [NC]

RewriteRule ^/index http://www.murray.cn/ [R=301,NC]

因为这个/index的PR比较高。 另外研究了两个条件的写法:

RewriteCond %{http_host} !^127.0.0.1 [NC]

RewriteCond %{http_host} !^www.murray.cn [NC]

RewriteRule ^/(.*)$ http://www.murray.cn/$1 [R=301,NC,L]

这种是AND的写法

RewriteCond %{http_host} !^127.0.0.1 [NC,OR]

RewriteCond %{http_host} !^www.murray.cn [NC]

RewriteRule ^/(.*)$ http://www.murray.cn/$1 [R=301,NC,L]

这是OR的写法,总的来说,Apache太灵活了