这是我的理想设置,我想弄清楚如何去做:
我有一个专业托管的域名:
示例.net
我有一个子域名 home.example.net,它指向我家里的 Mac mini。我已经让它正常工作了。home.example.net 的文档根目录是 /Users/me/Sites
我想设置动态子域,使得 home.example.net(正则表达式版本:*.home.example.net)之前的任何内容都具有文档根目录:/Users/me/Sites/$1
例如:访问 bacon.home.example.net 将具有文档根目录 /Users/me/Sites/bacon
我如何获得此设置以便不必为每个项目添加新的虚拟主机?
答案1
您需要启用mod_rewrite
a2enmod rewrite
并将以下指令添加到您的 Apache 配置中:
ServerAlias *.home.example.net
<Directory /User/me/Sites>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^home\.example\.net
RewriteCond %{HTTP_HOST} ^([^.]+).home\.example\.net
RewriteRule ^(.*)$ http://home.example.net/%1/$1 [L]
</Directory>
当然您需要确保每个子域的DNS记录和子目录都存在。