2012-06-23 18 views
3

对于开发项目,我使用hosts文件将真实域指向localhost。并且我将虚拟主机定义添加到apache配置文件。我的问题是有可能将所有“xyz.com”域重定向到“d:/xampp/htdocs/websites/xyz.com”目录?这样我就不需要每次都添加虚拟主机定义。apache虚拟主机定义与正则表达式

+0

我想每一个*。com域走在不同的文件夹 “d:/ XAMPP/htdocs中/网站/”。 mywebsite.com应该去“D:/xampp/htdocs/websites/mywebsite.com”。 otherwebsite.com应该去“”D:/xampp/htdocs/websites/otherwebsite.com“” – bkilinc

+0

你可以编辑你的问题来添加这个更新的信息,而不是添加评论。 – beerbajay

+0

我发现,这可以通过mod_vhost_alias模块来实现,但我对此没有经验。我会调查,当我找到解决方案时,我会在这里发布,以供分享。 – bkilinc

回答

7

您可以在VirtualHostServerAlias指令中使用通配符:

<VirtualHost *:80> 
    # Official name is example.com 
    ServerName example.com 

    # Any subdomain *.example.com also goes here 
    ServerAlias *.example.com 

    DocumentRoot "D:/xampp/htdocs/websites/xyz.com" 

    # Then rewrite subdomains into different directories 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^(.*)\.example.com$ 
    # Use the %1 captured from the HTTP_HOST 
    # For example abc.example.com writes to websites/abc.com 
    RewriteRule ^(.*)$ "D:/xampp/htdocs/websites/%1.com/$1" [L] 
</VirtualHost> 
+0

我希望每个* .com域都可以在“D:/ xampp/htdocs/websites /”下放置不同的文件夹。 mywebsite.com应该去“D:/xampp/htdocs/websites/mywebsite.com”。 otherwebsite.com应该去“”D:/xampp/htdocs/websites/otherwebsite.com“” – bkilinc

+0

@bkilinc对不起,我没有时间去完成这一点。我恢复了我的答案以及将子域重写为目录名称的重写规则。 –