如何在Apache中设置默认VirtualHost?
最好,我希望默认主机不与IP地址主机相同。现在我有了这样的东西:
NameVirtualHost *
<VirtualHost *>
ServerAdmin admin@example.com
DocumentRoot /someOtherDir/
ServerAlias ip.of.the.server
</VirtualHost>
<VirtualHost *>
ServerAdmin admin@example.com
DocumentRoot /someroot/
ServerAlias example.com *.example.com
</VirtualHost *>如果将域转发到我的服务器,但不在此vhost.conf文件中,则将按预期加载来自/someOtherDir/的文件。但我希望能够为IP地址本身和未添加到vhost.conf文件的域使用不同的根。这个是可能的吗?
发布于 2011-03-25 01:16:32
我找到了答案:我记得如果找不到其他匹配的块,Apache会使用第一个块,所以我在块的顶部添加了一个没有serveralias的块:
NameVirtualHost *
<VirtualHost *>
DocumentRoot /defaultdir/
</VirtualHost>
<VirtualHost *>
ServerAdmin admin@example.com
DocumentRoot /someOtherDir/
ServerAlias ip.of.the.server
</VirtualHost>
<VirtualHost *>
ServerAdmin admin@example.com
DocumentRoot /someroot/
ServerAlias example.com *.example.com
</VirtualHost>发布于 2017-02-11 08:50:55
如果您使用Debian样式的虚拟主机配置(站点可用/站点启用),设置默认VirtualHost的一种方法是首先在httpd.conf或apache.conf中包含特定的配置文件(或者您的主要配置文件是什么)。
# To set default VirtualHost, include it before anything else.
IncludeOptional sites-enabled/my.example.com.conf
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
# Load virtual host config files from "/etc/httpd/sites-enabled/".
IncludeOptional sites-enabled/*.conf发布于 2018-01-21 13:19:59
这里的其他答案不适用于我,但我找到了一个非常简单的解决方案。
我将默认的一个列在最后一个列表中,并给了它ServerAlias *。
例如:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.secondwebsite.example
ServerAlias secondwebsite.example *.secondwebsite.example
DocumentRoot /home/secondwebsite/web
</VirtualHost>
<VirtualHost *:80>
ServerName www.defaultwebsite.example
ServerAlias *
DocumentRoot /home/defaultwebsite/web
</VirtualHost>如果访问者没有明确选择以secondwebsite.example结尾的内容,他们将得到默认的网站。
https://stackoverflow.com/questions/5427379
复制相似问题