使用 XAMPP Vhosts 而不使用 DocumentRoot

使用 XAMPP Vhosts 而不使用 DocumentRoot

我正在尝试使用 xampp vhosts,并且我已填写了 DocumentRoot,但它不会转到文档根目录,而是转到 htdocs 根目录。使用域我的主机文件:

127.0.0.1 www.testsite.com
127.0.0.1 testsite.com

127.0.0.1 www.testsite-cms.com
127.0.0.1 testsite-cms.com

127.0.0.1 localapp.com
127.0.0.1 www.localapp.com

我的虚拟主机文件:

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/testsite"
ServerName testsite.com
ServerAlias www.testsite.com
<Directory "c:/xampp/htdocs/testsite">
AllowOverride All
Require all Granted
</Directory>
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/cms"
ServerName testsite-cms.com
ServerAlias www.testsite-cms.com
<Directory "c:/xampp/htdocs/cms">
AllowOverride All
Require all Granted
</Directory>
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/www"
ServerName localapp.com
ServerAlias www.localapp.com
<Directory "c:/xampp/htdocs/www">
AllowOverride All
Require all Granted
</Directory>
</VirtualHost>

答案1

您需要NameVirtualHost *:80在配置顶部。否则,服务器将根据 IP 解析虚拟主机,该 IP 始终与第一个<VirtualHost>指令匹配,因为您的所有站点都是 127.0.0.1,localhost 会解析为该 IP。由于它是通配符,因此即使它不是 localhost(如果其他 vhost 中也没有指定),它也会匹配您的第一个 vhost。

相关内容