通配符子域目录名称

Jas*_*ett 7 wildcard-subdomain apache-2.2

我的 Apache 配置中有以下内容:

<VirtualHost *:80>
  VirtualDocumentRoot /var/www/hosts/%0
  ServerAlias *.test.galapagos.office
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

在 /var/www/hosts 中,我有一个名为 jason.test.galapagos.office 的目录和一个名为 bill.test.galapagos.office 的目录。如果我在浏览器中访问 jason.test.galapagos.office,我会得到我期望看到的内容。和账单一样。换句话说,一切正常。

但是,我对正在发生的事情不太满意。而不是 /var/www/hosts/jason.test.galapagos.office 和 /var/www/hosts/bill.test.galapagos.office/,我想要 /home/jason/web 和 /home/bill/web .

我如何告诉 Apache 映射到这些子目录?

谢谢,杰森

sys*_*138 16

尝试这个:

<VirtualHost *:80>
  #VirtualDocumentRoot /var/www/hosts/%0
  VirtualDocumentRoot /home/%1/web
  ServerAlias *.test.galapagos.office
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我相信这会将请​​求发送到“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 相同