6

嗨我有一个主域如下

主域名: 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]

但是如果从子域访问以下 url http://dev.sample.com/data那么它不应该重定向到主域。它应该保留在该子域页面上。有人知道吗?

4

2 回答 2

2

试试这些规则:

RewriteCond %{HTTP_HOST} ^dev\.sample\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/?data
RewriteRule ^(.*)$ http://www.sample.com/$1 [L,QSA,R=301]
于 2012-08-16T13:35:27.550 回答
1

试试这个:

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

但是,这将阻止所有以 /data 开头的 URI 的 URL。因此,如果您有http://blog.sample.com/data它也将允许它在不重写的情况下解决。如果这是一个问题,您可能会变得更复杂......在此规则之后添加此以捕获所有非开发子域:

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

现在,如果不满足第一个条件集,则第一个规则将不会运行,因此请检查以确保您仅使用 /data 为 dev 和 www up 提供服务。

于 2012-08-16T13:22:59.567 回答