我正在运行一个 apache2,设置了两个 vhost。
一个站点运行正常。但另一个站点重定向到错误的目录。除了服务器名称和别名以及 curse 的文档根目录外,配置文件完全相同。
因此我查看了一下apachectl -S
,发现有一个附加条目,但是
Main DocumentRoot: "/var/www/html"
我没有找到设置此目录的 .conf 文件。
我怎样才能将其更改为指向显示错误目录的第二个虚拟主机的目录?
我的虚拟主机配置(如上所述):
<IfModule mod_ssl.c>
<VirtualHost *:443>
SSLEngine on
ServerName mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/wordpress
SSLCertificateFile /etc/letsencrypt/live/domain1/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain1/privkey.pem
</VirtualHost>
</IfModule>
另一个仅与其他目录和别名相同。
答案1
基本上,“Main DocumentRoot”是在任何 VirtualHost 块之外定义的 DocumentRoot,“/var/www/html”是出厂默认值。
这个较新的问题对此有一个很好的答案:https://stackoverflow.com/q/56812397/6918262
答案2
顾名思义,当虚拟主机本身未指定 DocumentRoot 值时,它是虚拟主机的默认 DocumentRoot 值。因此,如果请求与缺少 DocumentRoot 指令的虚拟主机块匹配,则 Apache 将使用默认或主文档根目录来处理请求。
Apache 默认文档根目录在两个地方指定,
- httpd 的编译时或运行时选项。
- 主服务器配置是在虚拟主机块之外指定的配置。任何虚拟主机配置基本上都从主服务器配置中获取默认值。
注意:主服务器配置中指定的文档根值将覆盖从编译时或运行时选项继承的值。
请参阅此链接了解更多信息: