我的 Apache 配置中有以下内容:
<VirtualHost *:80>
VirtualDocumentRoot /var/www/hosts/%0
ServerAlias *.test.galapagos.office
</VirtualHost>
在 /var/www/hosts 中,我有一个名为 jason.test.galapagos.office 的目录和一个名为 bill.test.galapagos.office 的目录。如果我在浏览器中访问 jason.test.galapagos.office,我会看到我期望看到的内容。bill 也是如此。换句话说,一切都运行正常。
但是,我对现在的情况不太满意。我更喜欢 /home/jason/web 和 /home/bill/web,而不是 /var/www/hosts/jason.test.galapagos.office 和 /var/www/hosts/bill.test.galapagos.office/。
我怎样才能告诉 Apache 映射到那些子目录?
谢谢,杰森
答案1
尝试这个:
<VirtualHost *:80>
#VirtualDocumentRoot /var/www/hosts/%0
VirtualDocumentRoot /home/%1/web
ServerAlias *.test.galapagos.office
</VirtualHost>
我相信会将请求发送到“jason.test.galapagos.office”到“/home/jason/web”
VirtualDocumentRoot 指令的完整列表可以在这里找到:
http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html
0 全名 1 第一部分 2第二部分 -1 最后一部分 -2 倒数第二部分 2+ 第二部分及所有后续部分 -2+倒数第二部分和所有前面的部分 1+ 和 -1+ 与 0 相同
答案2
这项改变能奏效吗?
VirtualDocumentRoot /home/%0/web
或者你可以考虑启用 mod_userdir,默认情况下它看起来像http://test.galapagos.office/~bill/