最简单的方式添加如下一行配置:
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太灵活了