如何将通配符条目放入/ etc / hosts?


Answers:


99

碰巧该/etc/hosts文件不支持通配符条目。

您将不得不使用dnsmasq等其他服务。要在dnsmasq中启用它,只需编辑dnsmasq.conf并添加以下行:

address=/example.com/127.0.0.1

4
通配符条目-地址=
/。example.com/127.0.0.1

2
@Vivek不需要
Rahil Wazir

4
有关ubuntu的dnsmasq设置,请参阅此文件
Lemonsqueeze 2015年

5
对于macosx设置,passingcuriosity.com/ 2013/dnsmasq-dev- osx非常有用。
aamir 2015年

4
rahilwazir,实际上,这是如果您不想要所有子域。#也可以用作通配符。我个人使用的是`address = / dev#.example.com / 127.0.0.1使dev123.example.com等正常工作。
雷·福斯

6

这是那些试图实现原始目标的配置(通配符都指向相同的代码库-不安装任何东西,开发环境即XAMPP)

主机文件(添加条目)

文件:/ etc / hosts(非Windows)

127.0.0.1   example.local

httpd.conf配置(启用虚拟主机)

文件:/XAMPP/etc/httpd.conf

# Virtual hosts
Include etc/extra/httpd-vhosts.conf

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

创建pac文件:

另存为what.pac,然后在浏览器的网络>代理>自动配置设置中加载文件(如果更改此设置,则重新加载)

function FindProxyForURL(url, host) {
  if (shExpMatch(host, "*example.local")) {
    return "PROXY example.local";
  }
  return "DIRECT";
}

不适用于Windows上的主机文件。它将仅接受www.example.com
Andre Figueiredo 2015年

1
这确实在Windows中使用firefox中的pac文件工作。我已经在多台Windows计算机上对此进行了测试。hosts文件只需要一个条目,而pac文件则处理子域。
Daniel Jordi 2015年

1
据我了解,最初的问题根本不是关于apache的问题,而是关于网络的问题,所以我认为您的回答没有
抓住


1
请注意,当使用pac文件将请求代理到主机(例如localhost)时,像Apache这样的Web服务器将使用REQUEST_URI变量中的完整URL(包括协议和主机名),而不是仅使用路径组件。
JSchirrmacher '17

4

使用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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.