Apache Vhosts 仅在本地工作

Apache Vhosts 仅在本地工作

好的,我添加了如下几行:

127.0.0.1   somedomain.com

或者其他指向我的路由器 IP 的域,并进行转发,但我到达主站点,但我希望它转到我在 httpd-vhosts.conf 中定义的子文件夹:

NameVirtualHost  somedomain.com:80

<VirtualHost somedomain.com:80>
 DocumentRoot "D:/Apps/xampp/htdocs/somedomain"
 ServerName somedomain.com
 ServerAlias somedomain.com
</VirtualHost>

因此,本地 somedomain.com 可以工作,远程则转到根 htdocs。因此,如果我使用 *:80 通配符,则可以工作,但随后所有内容都指向子文件夹,并且所有其他虚拟主机似乎都被忽略了。

知道这是为什么吗?

答案1

  1. 切勿在 VirtualHost 定义中使用主机名。请使用 IP:80 或 *:80。
  2. 不是“转发” - 流量才是。您在本地 hosts 文件中输入的内容与远程流量如何路由到您的 Web 服务器无关。

与往常一样,ServerName 是决定性的;Host:标头与 ServerName 进行比较,如果找到匹配的 vhost,则该主机接收请求。

相关内容