如何为动态域创建动态子域

时间:2012-10-02 22:24:44

标签: .htaccess

在我正在工作的应用程序中,我需要动态创建子域名。如果我知道我需要重定向到哪个域,那将是非常微不足道的。 关键是我可以有许多指向同一服务器的域,每个域可能有很多子域,我想要一个可以处理它的htaccess。

例如:domain1.com,domain1.com.br,domain2.com,domain2.co.uk都可以指向我的服务器。当用户尝试访问sub.domain1.com时,我希望将其透明地重定向(无301重定向)到domain1.com。如果他试图访问sub.domain1.com.br,我希望它透明地重定向到domain1.com.br等等(请注意,两个重定向都指向完全相同的点,唯一的区别在于地址巴)。

到目前为止,我尝试在从www重定向的行中进行更改失败。到非www域,但没有按预期工作:

    //This works
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    //This ends with a "too many redirections" error
#RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
#RewriteRule ^(.*)$ http://%1/$1 [L,QSA]

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

RewriteCond %{HTTP_HOST} ^(.+)\.([^.]{4,})\.([a-z]{3,4}|[a-z]{2,3}\.[a-z]{2}|[a-z]{2})$ [NC]
RewriteRule ^(.*)$ http://%2.%3/$1 [L,R=301]

这应涵盖所有这些:

  • domain1.com
  • domain1.com.br
  • domain2.co.uk
  • domain3.es
  • domain4.info