通配符子域名目录名称

通配符子域名目录名称

我的 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/

相关内容