2011-12-19 70 views
0

我想制作一个可用于任何(通配符)子域的简单页面。.htaccess中的通配符子域名

例如,您访问hello.domain2.com,该页面将回显子域名“hello”的名称。此外,该网址必须保留“hello.domain2.com”。这应该不会太难,但由于我的主机在1个根中有多个域,所以我必须调整我的.htaccess文件。

当我检查出htaccess的,主机已经取得全自动以下规则:

RewriteEngine on  

RewriteCond %{HTTP_HOST} ^www.domain1.com$ 
RewriteCond %{REQUEST_URI} !^/domain1.com/ 
RewriteRule (.*)   /domain1.com/$1 [last] 
RewriteCond %{HTTP_HOST} ^domain1.com$ 
RewriteCond %{REQUEST_URI} !^/domain1.com/ 
RewriteRule (.*)   /domain1.com/$1 [last] 

RewriteCond %{HTTP_HOST} ^www.domain2.com$ 
RewriteCond %{REQUEST_URI} !^/domain2.com/ 
RewriteRule (.*)   /domain2.com/$1 [last] 
RewriteCond %{HTTP_HOST} ^domain2.com$ 
RewriteCond %{REQUEST_URI} !^/domain2.com/ 
RewriteRule (.*)   /domain2.com/$1 [last] 

RewriteCond %{HTTP_HOST} ^www.domain3.com$ 
RewriteCond %{REQUEST_URI} !^/domain3.com/ 
RewriteRule (.*)   /domain3.com/$1 [last] 
RewriteCond %{HTTP_HOST} ^domain3.com$ 
RewriteCond %{REQUEST_URI} !^/domain3.com/ 
RewriteRule (.*)   /domain3.com/$1 [last] 

到目前为止,我已经配置了服务器接受我domain2.com任何子域,但我的主机重定向所有将子域添加到我的根文件夹。

如何让通配符子域名转到/domain2.com?

回答

0

你可以为交换域2规则块:

RewriteCond %{HTTP_HOST} ^([\w-]+).domain2.com$ 
RewriteCond %{REQUEST_URI} !^/domain2.com/ 
RewriteRule ^(.*)$   /domain2.com/$1?subdomain=%1 [LAST,QSA] 

([\w-]+)是服务器名的通配符,并且%1可以用作以后的RewriteRules占位符。 (第二个RewriteCond也可以变成断言..)