您好我有一个主域名如下
现在如果有任何人访问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 它不应该重定向到主域。它应该保留在该子域页面上。有人有想法吗?
答案 0 :(得分:2)
请尝试以下规则:
RewriteCond %{HTTP_HOST} ^dev\.sample\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/?data
RewriteRule ^(.*)$ http://www.sample.com/$1 [L,QSA,R=301]
答案 1 :(得分:1)
试试这个:
RewriteCond %{HTTP_HOST} !www\.sample\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/data [NC]
RewriteRule ^(.*)$ http://www.sample.com/$1 [L,R=301]
但是,这会阻止所有带有/ 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服务。