Apache ICANN名称冲突&;铬
半年前,我在我的计算机上安装了XAMPP,其中一些虚拟主机以“.dev”结尾。当我现在尝试用Chrome打开这些网站时,它给了我一个错误ICANN名称冲突。经过一些研究,我发现我不是唯一一个有这个问题的人,唯一的办法就是改成“.local” 因此,我更改了主机文件,httpd.config重新启动了系统/刷新了DNS缓存,但它不再工作。我无法使用新的本地域名访问服务器。当我使用IE并键入example.dev(或我以前使用的任何地址)时,它仍然会重定向到localhost,但不会重定向到旧目录。因此,我猜Apache注意到了这一变化,并采用了新的配置,但我的浏览器不知怎的告诉我,他们找不到服务器 最可能的错误是什么?哪些错误日志可能有用 如果我使用XAMPP/apacheshell并输入httpd-S,它会像v-Host.config文件一样打印出当前的v-Host设置。 主机文件: 127.0.0.1 db.本地 127.0.0.1本地测试 127.0.0.1 www.test.local 127.0.0.1主机本地 127.0.0.1 www.host.local apache\conf\extra\httpd-vhosts.conf:Apache ICANN名称冲突&;铬,apache,google-chrome,icann,Apache,Google Chrome,Icann,半年前,我在我的计算机上安装了XAMPP,其中一些虚拟主机以“.dev”结尾。当我现在尝试用Chrome打开这些网站时,它给了我一个错误ICANN名称冲突。经过一些研究,我发现我不是唯一一个有这个问题的人,唯一的办法就是改成“.local” 因此,我更改了主机文件,httpd.config重新启动了系统/刷新了DNS缓存,但它不再工作。我无法使用新的本地域名访问服务器。当我使用IE并键入example.dev(或我以前使用的任何地址)时,它仍然会重定向到localhost,但不会重定向到旧目录。
<VirtualHost *:80>
ServerName localhost
ServerAlias localhost
DocumentRoot "C:/XAMPP_DEV/htdocs"
</VirtualHost>
<VirtualHost *:80>
ServerName db.local
DocumentRoot "C:/XAMPP_DEV/phpmyadmin"
</VirtualHost>
<VirtualHost *:80>
ServerName test.local
ServerAlias www.test.local
DocumentRoot "C:/XAMPP_DEV/htdocs/test"
</VirtualHost>
<VirtualHost *:80>
ServerName host.local
ServerAlias www.host.local
DocumentRoot "C:/XAMPP_DEV/htdocs"
</VirtualHost>
服务器名本地主机
服务器别名本地主机
DocumentRoot“C:/XAMPP_DEV/htdocs”
ServerName db.local
DocumentRoot“C:/XAMPP_DEV/phpmyadmin”
ServerName test.local
ServerAlias www.test.local
DocumentRoot“C:/XAMPP_DEV/htdocs/test”
ServerName host.local
ServerAlias www.host.local
DocumentRoot“C:/XAMPP_DEV/htdocs”
这是我的V主机配置和主机文件;我删除了所有以#开头的行。Intro。。
这是我想到的一个老问题,因为我正在研究非常相似的东西。但碰巧我知道答案,只是不知道如何将它应用到我不想“根”的Android手机上。无论如何我不知道它是否会帮助你——也许不像你可能已经解决的那样——但它可以帮助其他人
只是解释一下:.dev
成了一个好朋友。所以,有些人拥有这些域名
你不能有一个固定的IP指向它-安全和法律原因。这就是为什么你的浏览器不能识别它-你的互联网提供商的DNS服务器(或你选择的DNS服务器)实际上
但是
有办法。您不必使用.local
如果您的主机
文件(系统文件,而不是具有类似名称的服务器文件)指向承载网站的本地计算机,本地浏览器将识别它。或者,如果您的本地DNS服务器将该地址指向您的本地计算机或服务器。这两种方案都将强制执行您提供的IP
大多数开发人员不会使用DNS服务器。我会认为这是理所当然的,因为如果你有一个DNS服务器,你可能知道的比我多(这不是一件很难做到的事情……),并且可能不会有这些问题
修理它。。
假设您具有与以前相同的配置—使用.dev
—您只需转到您的计算机(或本地网络中的每台计算机—取决于您的情况)并在Windows下编辑C:\Windows\System32\drivers\etc\hosts
文件即可。对于Linux,同样的情况也会出现在/etc/hosts
下
您可以将以下内容放在文件末尾:
IP_OF_THE_MACHINE yourfakedomain.dev
IP\u机器的IP\u将仅仅是正在开发的页面的“主机”的IP:
- 假设只有您会看到它,请使用
127.0.0.1
李>
- 假设您的朋友/老板需要检查您正在开发的内容的当前状态,请在他的计算机中编辑此文件,并将您的计算机IP地址和伪域放入本地开发。这假设它们位于同一网络中李>
- 假设您将使用它,但主机位于另一台PC上,请输入该PC的IP地址(如上所述)
yourfakedomain.dev
我认为这是不言自明的
(这应该不是问题,但我会将那些*更改为您将使用的假域名,例如从
更改为
。当然,每个案例的正确名称。)
试试这个并检查结果。应该是功能齐全的
笔记。。
您始终必须编辑至少三个文件:
- 一个虚拟主机文件——被分成几个单独的文件或在一个文件下(如
httpd vhosts.conf
)李>
httpd.conf
选择IP和端口范围,并包括虚拟主机文件李>
托管了你的系统文件,以强制执行诸如“假域名”之类的东西(test.dev、mymon.is.cool、hi.world..等等-利用你的想象力)李>
它应该始终与此配合使用。除非您与旧的或错误的配置(删除配置文件并卸载所有内容;重新安装并重新启动)或与路由器发生冲突。清除浏览器缓存或进行“深度重新加载”。这也可能是http服务器主机配置中的输入错误,这会导致服务器退回到默认主机的顶部。如果在内部找不到请求中指定的主机,则会发生这种情况。三次检查您的配置或在此处发布相关部分。我在以下位置清除了chrome:chrome://net-internals/#dns 在“设置不变”中,IE也一样:如果我ping到“example.dev”,我会得到所有的数据包,它向我显示IP 127.0.53.3ping
对于调试来说几乎毫无价值。您之前已经说过主机实际上是解析到本地http服务器的(如果我理解正确的话),因此这里没有新的信息。问题是http服务器是否知道您所指的主机。注意:主机!=addressOk如何确定http服务器是否知道主机?