我在 /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://域名/。