我们希望通过 VHosts 设置一个 apache-server 来执行以下操作:我们希望根据域名(包括子域,因此级别的数量可能会有所不同)及其反向路由我们的每个多个域到它们的相应位置- domain-name-notation (reverse-DNS) 作为目录名。
例如,我们想要路由admin.example.com
到/domains/com.example.admin/public
和myshop.net
到/domains/net.myshop/public
。
我们知道要在没有反向 DNS 的情况下实现这一点,配置应该如下所示(基于这篇文章和mod_vhost_alias 文档):
<VirtualHost *:80>
UseCanonicalName Off
VirtualDocumentRoot "/domains/%0/public"
</VirtualHost>
该文档仅讨论重新排列域名部分中的单个字母。
我们可以想到这样的解决方案:
<VirtualHost *:80>
UseCanonicalName Off
VirtualDocumentRoot "/domains/%-1.0.%-2.0.%-3.0.%-4.0.%-5.0.%-5.0.%-6.0/public"
</VirtualHost>
但是我们可以想象,当域名部分较少(或不太可能更多)时,它将无法工作或积累前导/尾随点或其他东西。
那么有可能吗?如果可以,我们如何实现这一目标?