将所有子域重定向到主域,除了一个选定的域

时间:2016-07-18 14:52:22

标签: apache .htaccess redirect mod-rewrite

如果我想将所有子域重定向到主域,除了一个需要重定向到子文件夹的子域。有什么办法吗?

  1. 将所选子域重定向到子文件夹

  2. 将所有子域重定向到主域

  3. 这是我的Apache配置:

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

1 个答案:

答案 0 :(得分:0)

从目录提供特定子域的第一条规则是正确的。对于第二条规则,只需添加1 AND条件,如果当前请求不是针对domain.com而不针对mySubdomain.domain.com,则将请求重定向到domain.com,如下所示:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mySubdomain\.domain\.com$   [NC]
RewriteRule ^(.*)$ http://domain.com/mySubdomain/$1  [R]

RewriteCond %{HTTP_HOST} !^domain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^mySubdomain\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301]