我遇到了一个非常奇怪的问题,似乎只出现在 Chrome 上,IE 和 Firefox 都没问题。我有 2 个网站由 1 个 IP 地址提供服务,我在 sites-available 中有两个相同的文件,分别名为 site1.com 和 site2.com。我运行 a2ensite 命令来创建指向 sites-enabled 的链接。
除使用 Chrome 的 site1.com 外,所有重定向均运行正常。
在 Chrome 上,如果我输入 www.site1.com 它会将我重定向到正确的文件夹 /var/www/site1.com ,如果我输入http://site1.com它将我重定向到错误的文件夹 /var/www
现在,事情变得奇怪了,当我输入 www.site2.com 时,它会将我重定向到 /var/www/site2.com,而当我输入http://site2.com它将我正确地重定向到 /var/www/sites2.com
我不明白的是,虚拟主机文件除了实际的服务器名称和别名以及日志位置外,是否完全相同。
站点1
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/site1.com
#<Directory />
# Options FollowSymLinks
# AllowOverride None
#</Directory>
#<Directory /var/www/site1.com>
# Options Indexes FollowSymLinks MultiViews
# AllowOverride None
# Order allow,deny
# allow from all
#</Directory>
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
ErrorLog /var/www-logs/site1.com/error.log
CustomLog /var/www-logs/site1.com/access.log combined
</VirtualHost>
站点2
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName site2.com
ServerAlias www.site2.com
DocumentRoot /var/www/site2.com
#<Directory />
# Options FollowSymLinks
# AllowOverride None
#</Directory>
#<Directory /var/www/site2.com>
# Options Indexes FollowSymLinks MultiViews
# AllowOverride None
# Order allow,deny
# allow from all
#</Directory>
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
ErrorLog /var/www-logs/site2.com/error.log
CustomLog /var/www-logs/site2.com/access.log combined
</VirtualHost>
答案1
我也遇到过同样的问题,这让我很抓狂。我到处搜索 Apache 的问题,因为我认为它正在执行重定向。
显然这是 chrome(可能是 Mac OS)的问题。Firefox 按预期显示虚拟主机。
您可以尝试清除浏览器中的 DNS 缓存。(虽然这对我暂时有效)
访问:chrome://net-internals/#dns在新的 chrome 标签页中。
然后点击clear host cache
按钮。
尝试再次访问这些网址,看看是否出现正确的网站。
但那没有用...
所以这不是一个永久的解决方案,因为它只在我第一次使用时起作用,然后我又开始遇到问题。
这个解决方案对我有用:https://stackoverflow.com/a/30489627/754854
基本上,只需进入系统偏好设置>网络>高级
在 DNS 选项卡中添加您的本地主机 IP 127.0.0.1
。另外,请注意不要覆盖路由器 IP。出于某种奇怪的原因,+ 号会将其删除并替换为您的配置,而不是直接添加您的配置。如果是这种情况,您需要重新添加路由器 IP。您可以在网络页面上看到路由器 IP。如果没有它,您可能很难加载网站,因此请确保它仍然存在。
顺序很重要。确保您的本地主机 IP 位于第一个,路由器或其他设置位于第二个:
127.0.0.1
xx.xx.xx.x
应用您的更改并测试它。
我在使用 Chrome 版本 60.0.3112.101(官方版本)(64 位)的 Mac OS Sierra 上遇到了这个问题
答案2
所以我无法解决这个问题,这让我很抓狂,我已经切换到 nginx。nginx 没有问题。而且使用的 RAM 也减少了 50%。