Apache-2.2

創建 VHost 並將子域轉發給它

  • September 28, 2011

So的大師

我有一個簡單的 .htaccess 文件,我只為我的 webapp 將非 www 重定向到 www。現在我想做的是

  1. 創建一個新的虛擬主機,例如http://subdomain.mydomain.tld
  2. 為進入該子域的任何人創建重定向到我的應用程序上的文件夾,例如app/webroot/subdomain

我目前的 .htaccess 看起來像這樣

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{HTTP_HOST} !^www\.mydomain\.tld [NC]
   RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301.L]
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ app/webroot/$1 [QSA,L]
</IfModule>

我該怎麼辦?我可以在我的 .htaccess 文件中完成所有這些操作,還是我也需要與 GoDaddy 搞混?如果有意義的話,我寧願不在應用程序中這樣做。

我正在執行 Ubuntu 10.04 + Apache 2.2.14-5

謝謝

這是您需要放入 .htaccess 文件的內容:

RewriteEngine on
# redirect mydomain.tld to www.mydomain.tld
RewriteCond %{HTTP_HOST} ^mydomain\.tld [NC]
RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301,L]

# default website
RewriteCond %{HTTP_HOST} ^www\.mydomain\.tld$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app/webroot/$1 [NC,QSA,L]

# subdomain to folder
RewriteCond %{HTTP_HOST} ^(sub|subfolder)\.domain\.com$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)/?$ http://www.domain.com/%1/$1 [NC,QSA,L]

引用自:https://serverfault.com/questions/316216