Недавно я хотел указать все поддомены для тестового домена, скажем, example.com на локальный хост. Есть ли способ указать все запросы на *.example.com для разрешения на 127.0.0.1
Как поместить подстановочный знак в /etc/hosts?
Ответы (3)
Бывает, что файл /etc/hosts
не поддерживает записи подстановочных знаков.
Вам придется использовать другие службы, такие как dnsmasq. Чтобы включить его в dnsmasq, просто отредактируйте dnsmasq.conf
и добавьте следующую строку:
address=/example.com/127.0.0.1
dnsmasq
не может этого сделать.
- person DisplayName; 14.12.2015
sudo systemctl restart dnsmasq
.
- person Forivin; 14.09.2017
Вот конфигурация для тех, кто пытается достичь первоначальной цели (все подстановочные знаки указывают на одну и ту же кодовую базу - ничего не устанавливать, среда разработки, т.е. XAMPP)
файл hosts (добавить запись)
файл: /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 [email protected]
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>
перезапустить апач
создать pac-файл:
сохраните как любой.pac, где хотите, а затем загрузите файл в настройках браузера network>proxy>auto_configuration (перезагрузите, если вы измените это)
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*example.local")) {
return "PROXY example.local";
}
return "DIRECT";
}
используйте dnsmasq
притворяясь, что вы используете дистрибутив на основе Debian (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