我尝试使用带有Acrylic DNS代理的Windows 8.1上的Apache 2.4设置动态VirtualHosts子域,但我遇到了Server Not Found错误的问题。我已经阅读了很多答案,例如this one,但我无法弄清楚错误或解决方法。
我的目标是设置一个本地域(http://localhost.pc
),以便/htdocs
中的文件夹动态提供所有子域名,http://test.localhost.pc/
来自/htdocs/test/
等。我的VirtualHost配置设置为
<VirtualHost *:80>
UseCanonicalName Off
ServerName localhost.pc
ServerAlias localhost.pc www.localhost.pc
DocumentRoot C:/dev/apache/htdocs/
<Directory />
Options FollowSymLinks Includes ExecCGI Indexes
IndexOptions FancyIndexing HTMLTable FoldersFirst
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
UseCanonicalName Off
ServerName localhost.pc
ServerAlias *.localhost.pc
VirtualDocumentRoot C:/dev/apache/htdocs/%1/
<Directory />
Options FollowSymLinks Includes ExecCGI
IndexOptions FancyIndexing HTMLTable FoldersFirst
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
我已经安装了丙烯酸DNS代理,我已经为我的WiFi和我的(已断开连接的)以太网将IPv4 DNS服务器更改为127.0.0.1,并且我已经编辑了AcrylicHosts.txt以包含线
127.0.0.1 localhost.pc *.localhost.pc
丙烯酸似乎工作正常,我已启用调试日志并点击日志和常规互联网浏览工作正常。但是,如果我访问我的本地域或子域,我会发现服务器未找到错误,尽管Acrylic的调试日志说
TResolver.Execute: Request ID 34019 received from client 127.0.0.1:55587 [Q=localhost.pc;T=AAAA;Z=84E301000001000000000000096C6F63616C686F737403706D6100001C0001].
TResolver.Execute: Response ID 34019 sent to client 127.0.0.1:55587 directly from hosts cache.
点击日志说
127.0.0.1 H Q=localhost.pc;T=A
127.0.0.1 H Q=localhost.pc;T=AAAA
从命令行ping localhost.pc失败(找不到主机),但nslookup看起来不对
C:\>nslookup localhost.pc
Server: UnKnown
Address: 127.0.0.1
Name: localhost.pc
Addresses: 127.0.0.1
127.0.0.1
如果我然后将127.0.0.1 localhost.pc
添加到C:\Windows\System32\drivers\etc\hosts
并刷新DNS缓存,我至少可以加载http://localhost.pc/
。 Acrylic的重点是能够使用通配符,但http://test.localhost.pc
只有在我手动将它和任何其他子域/文件夹添加到Windows主机文件时才有效。
所以我猜测如果手动将条目添加到Windows主机文件中,Acrylic就会出现问题。有没有人知道出了什么问题以及如何解决它?
答案 0 :(得分:0)
我修复了版本&lt; = 0.9.27版本中AcrylicHosts.txt文件无法正确解析AAAA查询的错误。
如果您使用最新版本(0.9.28),那么您应该没问题。