我最近想将测试域的所有子域都指向,例如example.com指向本地主机。有没有办法将* .example.com上的所有请求都指向127.0.0.1
Answers:
碰巧该/etc/hosts
文件不支持通配符条目。
您将不得不使用dnsmasq等其他服务。要在dnsmasq中启用它,只需编辑dnsmasq.conf
并添加以下行:
address=/example.com/127.0.0.1
dnsmasq
设置,请参阅此文件。
这是那些试图实现原始目标的配置(通配符都指向相同的代码库-不安装任何东西,开发环境即XAMPP)
文件:/ etc / hosts(非Windows)
127.0.0.1 example.local
文件:/XAMPP/etc/httpd.conf
# Virtual hosts
Include etc/extra/httpd-vhosts.conf
文件:XAMPP / etc / extra / httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin admin@example.local
DocumentRoot "/path_to_XAMPP/htdocs"
ServerName example.local
ServerAlias *.example.local
# SetEnv APP_ENVIRONMENT development
# ErrorLog "logs/example.local-error_log"
# CustomLog "logs/example.local-access_log" common
</VirtualHost>
重新启动Apache
另存为what.pac,然后在浏览器的网络>代理>自动配置设置中加载文件(如果更改此设置,则重新加载)
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*example.local")) {
return "PROXY example.local";
}
return "DIRECT";
}
使用dnsmasq
假装您使用的是基于debian的dist(ubuntu,mint ..),请检查是否已安装
(sudo) systemctl status dnsmasq
如果只是禁用它,则使用
(sudo) systemctl start dnsmasq
如果必须安装,请写
(sudo) apt-get install dnsmasq
要定义域解析编辑/etc/dnsmasq.conf
这样
address=/example.com/127.0.0.1
解决* .example.com
!您需要重新加载dnsmasq才能使更改生效!
systemctl reload dnsmasq