创建 VHost 并将子域转发给它

8 ubuntu mod-rewrite .htaccess subdomain apache-2.2

宗师

我有一个简单的 .htaccess 文件,我只将非 www 重定向到我的 web 应用程序的 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>
Run Code Online (Sandbox Code Playgroud)

我该怎么办?我可以在我的 .htaccess 文件中完成这一切还是我也需要与 GoDaddy 搞混?如果有意义的话,我宁愿不在应用程序中执行此操作。

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

谢谢

小智 18

以下是您需要放入 .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]
Run Code Online (Sandbox Code Playgroud)