我最近想要为测试域指出所有子域名,假设example.com到localhost。有没有办法将* .example.com上的所有请求指向解析为127.0.0.1
答案 0 :(得分:86)
/etc/hosts
文件不支持通配符。
您必须使用其他服务,例如dnsmasq。要在dnsmasq中启用它,只需编辑dnsmasq.conf
并添加以下行:
address=/example.com/127.0.0.1
答案 1 :(得分:6)
以下是那些试图完成原始目标的配置(通配符都指向相同的代码库 - 没有安装,开发环境即XAMPP)
file:/ etc / hosts(非windows)
127.0.0.1 example.local
file:/XAMPP/etc/httpd.conf
# Virtual hosts
Include etc/extra/httpd-vhosts.conf
file: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
在任何地方保存为whatever.pac,然后在浏览器的网络中加载文件&gt;代理&gt; auto_configuration设置(如果更改则重新加载)
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*example.local")) {
return "PROXY example.local";
}
return "DIRECT";
}
答案 2 :(得分:3)
使用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