Как поместить подстановочный знак в /etc/hosts?


недавно я хотел указать все поддомены для тестового домена, скажем example.com к местному хосту. Есть ли способ указать все запросы на *.example.com разрешить до 127.0.0.1

3 61

3 ответа:

бывает /etc/hosts файл не поддерживает записи wild card.

вам придется использовать другие услуги, такие как раздача. Чтобы включить его в dnsmasq, просто отредактируйте dnsmasq.conf и добавить следующую строку:

address=/example.com/127.0.0.1

вот конфигурация для тех, кто пытается выполнить исходную цель (подстановочные знаки, указывающие на одну и ту же кодовую базу-ничего не устанавливать, dev environment ie, XAMPP)

hosts файл (добавить запись)

file: / etc / hosts (non-windows)

127.0.0.1   example.local

httpd.конфигурации (включить виртуальные хосты)

file: /XAMPP/etc/httpd.conf

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

httpd-vhosts.конфигурации

: 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:

сохранить как угодно.pac везде, где вы хотите, а затем загрузите файл в сеть браузера > прокси>настройки auto_configuration (перезагрузите, если вы измените это)

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

использовать dnsmasq

притворяясь, что вы используете dist на основе debian (ubuntu,mint..), проверьте, установлен ли он с

(sudo) systemctl status dnsmasq

если он просто отключен запустите его с

(sudo) systemctl start dnsmasq

если вы должны установить его, написать

(sudo) apt-get install dnsmasq

чтобы определить домены для разрешения edit /etc/dnsmasq.conf такой

address=/example.com/127.0.0.1

разрешить *.example.com

! Вам нужно перезагрузить dnsmasq, чтобы взять эффект для изменений !

systemctl reload dnsmasq