Apache 中的动态虚拟主机

Pat*_*ney 5 virtualhost apache-2.2

我的 httpd-vhosts.conf 文件如下所示:

<VirtualHost *:80>
DocumentRoot "/www/foo/htdocs"
ServerName foo
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/www/bar/htdocs"
ServerName bar
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/www/baz/htdocs"
ServerName baz
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

注意到图案了吗?有什么方法可以减少重复,或者我是否坚持为每个站点设置单独的 VirtualHost 条目?

Pat*_*ney 2

阅读黑暗忍者的答案后我想出了如何做到这一点。这是我的 httpd-vhosts.conf 文件现在的样子。

# Dynamic virtual hosts.
# See http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html
UseCanonicalName Off
VirtualDocumentRoot /www/%0/htdocs/
Run Code Online (Sandbox Code Playgroud)

我还必须通过在 httpd.conf 中取消注释此行来启用 mod_vhost_alias

LoadModule vhost_alias_module modules/mod_vhost_alias.so
Run Code Online (Sandbox Code Playgroud)