虚拟子域:每个用户一个子域

在我的网站上我使用的是虚拟主机,所以我的用户可以有像“user1.mydomain.com”,“user2.mydomain.com”虚拟域,…

问题是在像“user1.domain.com”这样的虚拟域上,索引页面总是和我的索引页面“http://mydomain.com”一样。

我想要做的是有两个不同的索引页的域和子域。 我的问题,如何让子域名redirect到“index2.php”(例如),仍然有子域名看起来像“user1.mydomain.com”?

    理想情况下,您可以为每个子域设置完全独立的文档目录。 在Apache的vhost是要走的路。 如果你想按照自己的方式来做(子域名重定向到单个文件),那么这是一个更多的工作,但仍然是可行的。 首先,用通配符定义mod_vhost

     <VirtualHost 111.22.33.55> DocumentRoot /www/subdomain serverName www.mydomain.com serverAlias *.mydomain.com ... </VirtualHost> 

    然后在这个VirtualHost里面设置用mod_rewrite重写规则:

     <Location "/"> RewriteCond %{HTTP_HOST} ^user1.mydomain.com$ RewriteRule ^\/$ http://www.mydomain.com/index2.php [R=301,L] RewriteRule ^\/index.php$ http://www.mydomain.com/index2.php [R=301,L] RewriteCond %{HTTP_HOST} ^user2.mydomain.com$ RewriteRule ^\/$ http://www.mydomain.com/index3.php [R=301,L] RewriteRule ^\/index.php$ http://www.mydomain.com/index3.php [R=301,L] ... </Location> 

    但请注意,这将只适用于//index.php请求子域名。 如果您打算做比这更多的事情,那么为每个子域设置单独的文档根目录要好得多。

    也许你对这个感兴趣。

    http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html#virtualdocumentroot

    这允许在Apache服务器中自动使用基于子域的文档根

    我会使用PHP来检查网址。 如果它是一个包含index2.php的子域,则包含index1.php

    不知道你正在运行的服务器是我能想到的唯一方法。