Apache 2.4.6 中 VirtualHost 上的 ServerName 不起作用

Apache 2.4.6 中 VirtualHost 上的 ServerName 不起作用

我在 /etc/httpd/sites-enabled/domain.com.conf 中有以下 VirtualHosts:

<VirtualHost *:80>
        DocumentRoot /var/www/html/
        ServerName www.domain1.com
</VirtualHost>

<VirtualHost *:80>
        ServerName test.domain2.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/html/domain2dir
        ErrorLog /var/log/httpd/domain2.com-error.log
        CustomLog /var/log/httpd/domain2.com-access.log combined
</VirtualHost>

<VirtualHost *:80>
        ServerName something.domain1.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/html/somethingdir
        ErrorLog /var/log/httpd/something.domain1.com-error.log
        CustomLog /var/log/httpd/something.domain1.com-access.log combined
</VirtualHost>

当我通过 IP 访问我的服务器时,它会显示 /var/www/html/;[OK]

当我通过 something.domain1.com 访问我的服务器时,它会显示 /var/www/html/somethingdir; [OK]

但当我访问 test.domain2.com 时,它会返回到http://IP/而不是带我到 /var/www/html/domain2dir。

这是为什么?

PS:domain2dir 是一个 wordpress 网站。

编辑:我变了文件根目录 /var/www/html/domain2dir改为 domain2dir 以外的其他目录,它就可以正常工作了。我认为这意味着问题出在 wordpress 目录上,但我不确定原因。

运行带有 Apache 2.4.6 和 PHP 7.2.9 的 CentOS 7。

答案1

对于遇到同样问题的人来说,问题出在 WordPress 的数据库中。它指向http://IP/domain2dir/etc.etc.etc,因此每次 Apache 重定向到该特定目录时,WordPress 都会重定向回http://IP/. 解决方案是改变你的http://IP/目录/在几张桌子里面http://域名/

相关内容