Windows、Apache、Acrylic DNS 和通配符子域

Windows, Apache, Acrylic DNS, and wildcard subdomains

我正在尝试使用 Apache 2.4 在 Windows 8.1 上使用 Acrylic DNS 代理设置动态 VirtualHosts 子域,但我 运行 遇到了服务器未找到错误的问题。我已经阅读了很多答案,例如 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>

我已经安装了 Acrylic DNS 代理,我已经将我的 WiFi 和我的(断开连接的)以太网的 IPv4 DNS 服务器更改为 127.0.0.1,并且我编辑了 AcrylicHosts.txt 以包含行

127.0.0.1 localhost.pc *.localhost.pc

Acrylic 似乎工作正常,我启用了调试日志和命中日志,并且正常的互联网浏览工作正常。但是,如果我访问我的本地域或子域,尽管 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 只有在我手动将它和任何其他 subdomain/folder 添加到 Windows 主机文件时才有效。

所以我猜如果手动将条目添加到 Windows 主机文件使事情正常,那么 Acrylic 就是问题所在。有没有人知道出了什么问题以及如何解决?

我修复了一个关于 AAAA 查询的错误,该错误未从版本 <= 0.9.27 中的 AcrylicHosts.txt 文件正确解析。

如果您使用最新的 (0.9.28) 版本应该没问题。