2011-12-19 112 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也可以變成斷言..)