命名虚拟主机在 xampp windows 中不起作用

Posted

技术标签:

【中文标题】命名虚拟主机在 xampp windows 中不起作用【英文标题】:Named virtual host not working in xampp windows 【发布时间】:2018-03-11 11:06:11 【问题描述】:

我在 extra\httpd-vhosts.conf

中有以下配置
NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/history"
    ServerName history.test.in
    <Directory "C:/xampp/htdocs/history">
        Options All
        AllowOverride All
        Require all Granted
   </Directory>
</VirtualHost>

另外,我在 apache\conf\httpd.conf 文件中启用了此功能,

Include conf/extra/httpd-vhosts.conf

drivers\etc\hosts 文件中,我有

127.0.0.1 localhost

127.0.0.1 history.test.in

当我尝试访问 http://history.test.in 时,网站未加载,但尝试使用 http://localhost/history 时,它可以正常工作。我做错什么了吗?另外,我在 Apache 中没有看到任何错误日志。

【问题讨论】:

基于 IP 的主机也可以。我的意思是 127.0.0.1/history 也可以正常工作。问题仅与命名主机有关。非常感谢您的帮助。 【参考方案1】:

以上配置是正确的。虚拟主机不工作的原因是系统中的防火墙阻止、杀毒软件中断、多操作系统环境等设置不正确。

这篇文章(大开眼界)帮助我发现了 windows xampp 环境中的问题:https://serverfault.com/questions/452268/hosts-file-ignored-how-to-troubleshoot 特别是 ipconfig /displaydns DNS 命令帮助我发现新主机正确生效。

此外,如果您在系统中运行多个版本的操作系统(windows 7、vista 或 windows 10),请确保编辑正在运行的 drivers\etc\hosts 操作系统的 hosts 文件,而不是闲置一个。

【讨论】:

以上是关于命名虚拟主机在 xampp windows 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess 在 xampp 中不起作用(Windows 10)

XAMPP 在 Windows 10 中不起作用

为啥php邮件功能在xampp中不起作用

为啥我的 cURL 请求在 XAMPP 中不起作用?

CURLOPT_TIMEOUT 在 php / windows 中不起作用?

.htaccess 在 xampp (ubuntu) 中不起作用