2013年1月9日星期三

【转】.htaccess实现单个或多个域名301转向

需要把原来的域名和现在带www的域名都跳转到不带www的域名上。在网上搜索了一下,有很多方法,比如dns的url转发,html跳转,.htaccess等等。实际上第一个和第三个才是真正的301跳转。而托管在门户通的域名是不允许url转发的,所以我就只能考虑用.htaccess了。而多个域名301转向到单个域名,还是花了好大功夫才自己写出来的,网上搜不到。在网上搜索了一下,所有的教程都是针对一个域名跳转到另外一个域名。使用方法如下:
PHP代码
  1.      
  2. Options +FollowSymLinks      
  3. RewriteEngine on      
  4. RewriteCond %{HTTP_HOST} ^www.88799.com[NC]      
  5. RewriteRule ^(.*)$ http://88799.com/$1 [L,R=301]      
  6. RewriteBase / 
把以上代码加入.htaccess中“<IfModule mod_rewrite.c>”下面。注意如果有重复的,就把原来存在的重复的删掉。boblog用户直接用上面的代码覆盖“<IfModule mod_rewrite.c>”以下,“#New rules since 2.1.0 beta 2”以上的代码即可。注意!不要忘了把www.88799.com88799.com换成你自己的域名!我这里设置的是把www.88799.com跳转到zsky.org,一定要看清!RewriteCond是说明跳转的条件,而RewriteRule说明跳转的方向。就这个意思。
而我需要的多个域名重定向到zsky.org怎么办呢?我试了好多次,又参考了专门的RewriteCond使用方法,终于自己写出了方法。好像在网上搜不到现成的!好代码不敢独享,告诉大家吧:
PS:FckEditor的插入高级代码功能用不了,关不掉,使页面无法操作,多亏了自动保存!不然以上内容就Bye-bye了!
PHP代码
  1.      
  2. Options +FollowSymLinks        
  3. RewriteEngine on        
  4. RewriteCond %{HTTP_HOST} ^pic.88799.com [OR]        
  5. RewriteCond %{HTTP_HOST} ^ww.88799.com[OR]        
  6. RewriteCond %{HTTP_HOST} ^www.2046k.com[OR] 
  7. RewriteRule ^(.*)$ http://88799.com/$1 [L,R=301]        
  8. RewriteBase /  
把以上内容按第一种方法保存到.htaccess即可。[OR]就是“或”,如果来路是www.88799.com或后者或再者,那么就跳转到88799.com,别忘了更改成你自己的地址!

没有评论: