我遇到了一个问题,它只在 Google Chrome 中发生,而在 Firefox 和 IE 中则正常。我在 Google 上搜索了很多网站,也尝试了一些技巧,但都不起作用。
我已经安装了 WAMP 服务器。我设置了两个虚拟主机:
问题是,每当我在地址栏中输入 localhost 时,它都会立即重定向到 enginter.local !并且 Chrome 会针对所有本地 URL 显示此错误:
此页面无法运行
enginter.local 没有发送任何数据。
错误信息:ERR_EMPTY_RESPONSE
httpd-vhosts.conf
:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "d:/wamp/www/real/yegane"
ServerName yegane.local
ServerAlias www.yegane.local
ErrorLog "logs/yegane.local-error.log"
CustomLog "logs/yegane.local-access.log" common
<Directory "/">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "d:/wamp/www/real/enginter"
ServerName enginter.local
ServerAlias www.enginter.local
ErrorLog "logs/enginter.local-error.log"
CustomLog "logs/enginter.local-access.log" common
<Directory "/">
Require all granted
</Directory>
</VirtualHost>
这是我的hosts
文件(在 Windows 10 中):
127.0.0.1 localhost
#::1 localhost
127.0.0.1 enginter.local
127.0.0.1 yegane.local
我尝试清除此处的 DNS 缓存 chrome://net-internals/#dns 并且尝试将 chrome://flags 中的所有内容重置为默认设置,但没有成功!
重启系统后问题就解决了,但过了一会儿又出现了,而且 Apache 也使用了 80 端口。
如果造成混淆,我很抱歉。我自己也搞不清楚,而且这花了我整整一周的时间。
更新
现在我所有的浏览器都是这样!
更新2
httpd -S
给出:
VirtualHost configuration:
127.0.0.1:* is a NameVirtualHost
default server enginter.local (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:43)
port * namevhost enginter.local (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:43)
alias www.enginter.local
port * namevhost yegane.local (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:57)
alias www.yegane.local
*:80 localhost (D:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-vhosts.conf:30)
ServerRoot: "D:/wamp/bin/apache/apache2.4.23"
Main DocumentRoot: "D:/wamp/www"
Main ErrorLog: "D:/wamp/logs/apache_error.log"
Mutex default: dir="D:/wamp/bin/apache/apache2.4.23/logs/" mechanism=default
PidFile: "D:/wamp/bin/apache/apache2.4.23/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: APACHE24=Apache2.4
Define: VERSION_APACHE=2.4.23
Define: INSTALL_DIR=D:/wamp
Define: APACHE_DIR=D:/wamp/bin/apache/apache2.4.23
答案1
httpd-vhosts.conf
我将按如下方式构建您的虚拟主机条目:
# Assuming we wish to type in e.g. "localhost" in Chrome
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName localhost
#ServerAlias should be unneeded
DocumentRoot "d:/wamp/www/real/localhost" # Or whatever directory is appropriated
ErrorLog "logs/localhost.local-error.log"
CustomLog "logs/locahost.local-access.log" common
#... Other stuff ...
</VirtualHost>
#... Other entries as listed ...
请注意,这#... Other stuff ...
显然可以是Directory
信息或您希望包含的任何其他内容,但这不是必需的。此配置应该通过在浏览器中输入“localhost”或“127.0.0.1”即可访问“localhost”。
主 httpd.conf 文件中也有 localhost 的 ServerName 和 DocumentRoot 条目[.]
您不需要更改任何内容DocumentRoot
,httpd.conf
但您应该更改服务器名称进入httpd.conf
,特别是进入某事物其他而不是“localhost”(例如ServerName MyCoolServer
=P)。
你(当然)需要重启 WAMP(Apache)服务器并刷新浏览器缓存(你甚至可能需要执行两次)。在 Chrome 中,你可以使用chrome://settings/clearBrowserData。在 Firefox 中,可以使用 *历史记录 - > 清除历史记录...* 选项实现类似的效果(至少清除浏览和下载历史记录和缓存可以从下拉菜单中尽早设置)。