将.htaccess从主域重定向到子域 - 多站点安装

时间:2014-06-04 06:42:16

标签: regex apache .htaccess mod-rewrite drupal

我在www.my-main-domain.com上设置了drupal, 我在subdomain.my-main-domain.com上安装了drupal多站点

我想重定向所有:

  

www.my-main-domain.com/user,wwwmy-main-domain.com/users,   www.my-main-domain.com/user / *

我子域子路径的路径:

  

my-main-domain.com/user,subdomain.my-main-domain.com/users,   subdomain.my-main-domain.com / *

分别

我在.htaccess文件中写了以下内容:

RewriteBase / 
RedirectMatch 301 ^/users/(.*)$ http://subdomain.my-main-domain.com/users/$1
RedirectMatch 301 ^/user/(.*)$ http://subdomain.my-main-domain.com/user/$1
RedirectMatch 301 ^/users$ http://subdomain.my-main-domain.com/users
RedirectMatch 301 ^/user$ http://subdomain.my-main-domain.com/user

但是它重定向到子域但是在继续循环中,因此以空白显示结束。

请注意,它使用常见的.htaccess文件进行多站点安装。 我已经尝试了路径重定向drupal模块,但它不支持内部路径重定向说路径已经在使用。

请帮忙。感谢

1 个答案:

答案 0 :(得分:1)

使用mod_rewrite代替控制重写条件下的主机名。

RewriteEngine On

RewriteCond %{HTTP_HOST} ^my-main-domain\.com$ [NC]
RewriteRule ^(users?)(/.*)?$ http://subdomain.my-main-domain.com/$1$2 [L,R=301,NC]

PS:另请注意,您的4条规则可以合并为一条,如上所示。