Apache下利用 .htaccess设置多域名301跳转重定向

1:准备工作
需要给每个域名做解析A记录(这个有点废话但是确实困扰过我-->不带www的域名没做解析然后就修改.htaccess怎么都不成功郁闷坏了)所以在这里提醒一下大家
给域名不带www的设置解析 ?直接在 ? 域名提供服务商那里 ? -> 留空即可
2:修改.htaccess
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.a.com [NC,OR]
RewriteCond %{HTTP_HOST} ^a.com [NC,OR]
RewriteCond %{HTTP_HOST} ^b.com [NC]
RewriteRule ^(.*)$ http://www.b.com/$1 [L,R=301]
OR下面可以再加入多个域名
NC代表不匹配大小写
————————————————
新建一个空文件,文件名.htaccess,填入重定向规则后,上传到网站根目录。
用301将带WWW的域名重定向不带WWW的域名
rewriteEngine on
rewriteCond %{http_host} ^http://www.xa189.net/news/482-cn.html [NC]
rewriteRule ^(.*)$ http://xa189.net/news/482-cn.html/$1 [R=301,L]
用301将绑定的其他多个域名重定向到主域名
RewriteEngine on
RewriteCond %{HTTP_HOST} ^http://www.xa10000.cc/news/223-cn.html$ [OR]
RewriteCond %{HTTP_HOST} ^http://www.xa10000.cc/news/8-cn.html$ [OR]
RewriteCond %{HTTP_HOST} ^http://www.xa10000.cc/news/shownews.php?lang=cn&id=322&pcok=wap&met_mobileok=1$ [OR]
RewriteCond %{HTTP_HOST} ^http://www.xa10000.cc/news/166-cn.html$ [OR]
RewriteCond %{HTTP_HOST} ^http://www.xa10000.cc/news/433-cn.html$
RewriteRule ^(.*)$ http://xa189.net/news/433-cn.html/$1 [R=301,L]
当然,也可以再扩展一下,将index.html、index.php等也重定向一下:
RewriteEngine on

一:通过.htaccess做重定向

重定向www.lituanmin.com到 lituanmin.com也是出于同样的原因,只是形式不同。
打开.htaccess文件,加入以下规则。

1.重定向lituanmin.com到 www.lituanmin.com

RewriteEngine On
RewriteCond %{HTTP_HOST} ^lituanmin.com [NC]
RewriteRule ^(.*)$ http://www.lituanmin.com/$1 [L,R=301]


2.重定向www.lituanmin.com到lituanmin.com

RewriteEngine On
RewriteCond %{HTTP_HOST} !lituanmin.com$ [NC]
RewriteRule ^(.*)$ http://lituanmin.com/$1 [L,R=301]


3.重定向oldlituanmin.com到www.newlituanmin.com

RewriteEngine On 
RewriteCond %{HTTP_HOST} !oldlituanmin.com$ [NC] 
RewriteRule ^(.*)$ http://www.newlituanmin.com/$1 [L,R=301] 


4.重定向 oldlituanmin.com to newlituanmin.com

RewriteEngine On 
RewriteBase /
RewriteCond %{HTTP_HOST} !oldlituanmin.com$ [NC] 
RewriteRule ^(.*)$ http://newlituanmin.com/$1 [L,R=301]

5.重定向lituanmin.com/file/file.php 到 otherlituanmin.com/otherfile/other.php
 RewriteCond %{HTTP_HOST} ^www.lituanmin.com$
RewriteRule ^file/file.php$ http://www.otherlituanmin.com/otherfile/other.php [R=301,L]

二:通过PHP做301重定向

 301重定向的方法有很多,这里整理了如何用程序做301永久重定向

<?php
$the_host = SERVER['HTTP_HOST'];//取得当前域名  
$request_uri = isset(SERVER['REQUEST_URI']) ? SERVER['REQUEST_URI'] : ”;//判断地址后面是否有参数  
if($the_host != ‘www.xxxxxx.com’)//把这里的域名换上你想要的  
{  
   header(‘HTTP/1.1 301 Moved Permanently’);//发出301头部
   header(‘Location:http://www.xxxxxx.com’.$request_uri);//跳转到你希望的地址格式  
}
?>




本文地址:http://www.gb2.org/post/29||Apache下利用 .htaccess设置多域名301跳转重定向
转载声明:本文为艺术源于生活,生活源于感悟-丐帮儿的原创文章,转载请注明原文地址,谢谢合作

发表评论: