2012-08-16 118 views
5

您好我有一个主域名如下重定向子域的主域名只是一个URL

主要领域:http://www.sample.com/

子域:http://dev.sample.com/

现在,如果有任何一个接入http://dev.sample.com/它需要重定向到http://www.sample.com/ 所以我添加下面的代码在我的子域它非常好

RewriteCond %{HTTP_HOST} !www.sample.com.com$ [NC] 

RewriteRule ^(.*)$ http://www.sample.com.com/$1 [L,R=301] 

但是从子域,如果任何访问以下网址http://dev.sample.com/data然后 它不应该重定向到主域名。它应该停留在该子域页面上。任何人有想法?

回答

2

尝试下列规则:

RewriteCond %{HTTP_HOST} ^dev\.sample\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/?data 
RewriteRule ^(.*)$ http://www.sample.com/$1 [L,QSA,R=301] 
+0

谢谢@Yazmat。其工作正常:) – AnNaMaLaI 2012-08-17 05:36:45

+0

就是你!!!欢迎:)很高兴它工作^^ – Oussama 2012-08-17 10:24:52

1

试试这个:

RewriteCond %{HTTP_HOST} !www\.sample\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/data [NC] 
RewriteRule ^(.*)$ http://www.sample.com/$1 [L,R=301] 

但是,这将阻止所有的URL与/数据的URI的开始。所以如果你有http://blog.sample.com/data它也可以让它解决没有重写。如果这是一个问题,你可以得到更复杂......这一规则后,添加此捕获所有非dev的子域:

RewriteCond %{HTTP_HOST} !dev\.sample\.com$ [NC] 
RewriteCond %{HTTP_HOST} !www\.sample\.com$ [NC] 
RewriteRule ^(.*)$ http://www.sample.com/$1 [L,R=301] 

现在第一条件设定不符合第一条规则将无法运行,所以检查一下,以确保你只在服务器上启用/ www和/ data。

+0

我试过,但它不工作:( – AnNaMaLaI 2012-08-17 12:04:19

+0

尼斯一个工作就像一个魅力:) – 2013-03-04 15:15:59