使用正则表达式的 apache 虚拟主机定义
Posted
技术标签:
【中文标题】使用正则表达式的 apache 虚拟主机定义【英文标题】:apache virtual host definition with regex 【发布时间】:2012-06-25 13:23:27 【问题描述】:对于开发项目,我使用主机文件将真实域指向 localhost。我将虚拟主机定义添加到 apache 配置文件中。我的问题是可以将所有“xyz.com”域重定向到“d:/xampp/htdocs/websites/xyz.com”目录吗?这样我就不需要每次都添加虚拟主机定义。
【问题讨论】:
我希望每个 *.com 域都转到“D:/xampp/htdocs/websites/”下的不同文件夹。 mywebsite.com 应该转到“D:/xampp/htdocs/websites/mywebsite.com”。 otherwebsite.com 应该转到 ""D:/xampp/htdocs/websites/otherwebsite.com"" 您可以编辑您的问题以添加此更新信息,而不是添加评论。 我发现,这可以通过 mod_vhost_alias 模块实现,但我没有经验。我会调查,当我找到解决方案时,我会在这里发布,以供分享。 【参考方案1】:您可以在VirtualHost
的ServerAlias
指令中使用通配符:
<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>
【讨论】:
我希望每个 *.com 域都转到“D:/xampp/htdocs/websites/”下的不同文件夹。 mywebsite.com 应该转到“D:/xampp/htdocs/websites/mywebsite.com”。 otherwebsite.com 应该转到 ""D:/xampp/htdocs/websites/otherwebsite.com"" @bkilinc 抱歉,我没有时间早点完成。我恢复了我的答案以及将子域重写为目录名称的重写规则。以上是关于使用正则表达式的 apache 虚拟主机定义的主要内容,如果未能解决你的问题,请参考以下文章