.htaccess基于子域重定向到不同的

时间:2012-07-26 18:41:51

标签: .htaccess wildcard subdomain

我有一个问题。

我正在尝试在我的主机上设置1个域的TEST,CERT和PROD网站空间 问题是我已经在我的网页中使用子域名,因此无法进行DNS通配符记录配置。

该网址在PROD上显示如下:
company1.domain.com company2.domain.com

两者都指向托管上的同一目录。

我想要达到的目标是: company1.domain.com - >指向目录1 company1.test.domain.com - >指向目录2
company1.cert.domain.com - >指向目录3

“company1”必须是通配符。 另外,我不希望看到URL中显示的目录。

任何人都知道如何做到这一点?
我应该删除现有的DNS通配符记录吗?

1 个答案:

答案 0 :(得分:1)

理想情况下,您应该将每个子域都设置为单独的vhost,并将每个vhost指向其自己的目录。有些托管公司甚至允许您将子域分配到不同的目录。

但是如果出于某种原因,他们都需要指向同一个文档根目录,请尝试将这些规则添加到文档根目录中的htaccess文件中:

RewriteEngine On

# for company1
RewriteCond %{HTTP_HOST} company1.domain.com [NC]
RewriteCond %{REQUEST_URI} !^/directory1
RewriteRule ^(.*)$ /directory1/$1 [L]

# for company1.test
RewriteCond %{HTTP_HOST} company1.test.domain.com [NC]
RewriteCond %{REQUEST_URI} !^/directory2
RewriteRule ^(.*)$ /directory2/$1 [L]

# for company1.cert
RewriteCond %{HTTP_HOST} company1.cert.domain.com [NC]
RewriteCond %{REQUEST_URI} !^/directory3
RewriteRule ^(.*)$ /directory3/$1 [L]