0

所以我在我的本地主机(xampp)上有一个正在开发中的网站

http://localhost/new_site/

该站点使用动态子域...在实时服务器上...我的意思是...我需要在我的本地主机上复制它, 所以 http://*.localhost/new_site/ 应该加载 http://localhost/new_site/

我找到的解决方案是针对特定子域而不是通配符,其中大多数假设您需要一个或两个子域并且您的项目位于 localhost 的根目录中。

那么有人可以提出解决方案吗?

谢谢, 稀有

4

3 回答 3

2

子域只是 DNS 映射。您不能在 localhost 上映射 DNS,因为 localhost 只是指您的本地环回 IP,而子域指的是 DNS 中完全不同的 IP。

为了更好地理解这一点:

当您访问 google.com 时,您的浏览器会向 DNS 服务器查询要连接的 IP。如果您访问 maps.google.com,它会向它查询不同的 IP,在这种情况下会重定向到http://google.com/maps - 因此,由于 localhost 只是 127.0.0.1,而不是 DNS 引用,因此您无法指定 subdomain.localhost

于 2013-02-20T18:06:10.027 回答
2

本地主机上不能使用通配符 (*) 子域。但是,出于测试目的,您可以在位于“ C:\Windows\System32\drivers\etc ”的“ hosts ”文件中配置一些子域

在下面的示例中,我使用了 uniedu而不是 localhost

127.0.0.1   uniedu
::1 uniedu

127.0.0.1 suba.uniedu subb.uniedu
::1     suba.uniedu subb.uniedu

您可以通过用空格分隔它们来在单个条目中添加多个子

重要提示:您还必须通过编辑 vhosts 文件在 XAMP/WAMP 中添加相同的 subs

<VirtualHost *:80>
    ServerName uniedu
    ServerAlias suba.uniedu subb.uniedu
    DocumentRoot "e:/....
    ...
    ...
</VirtualHost>
于 2020-06-27T04:10:04.827 回答
0

理论上,您可以在您的开发机器上创建一个本地 DNS 服务器,并将您的网络 DNS 记录指向您的本地机器上查找域。这意味着当您在浏览器中键入域名时,浏览器会先询问您的本地 DNS 服务器,然后再询问外部 DNS 服务器。然后,您可以在本地 DNS 服务器上创建自定义区域(包括 *.localhost),然后将其指向 127.0.0.1 或本地 DHCP 颁发的 IP 地址。我建议查看 DNSProxy:

https://github.com/hubdotcom/marlon-tools - 文档

或者

https://github.com/hubdotcom/marlon-tools/blob/master/tools/dnsproxy/dnsproxy.py - 代码

或者查看 DNSMasq:

https://thekelleys.org.uk/dnsmasq/doc.html - 文档

或者

https://sixfeetup.com/blog/local-development-with-wildcard-dns-on-linux -tutorial

于 2021-04-27T19:07:18.997 回答