Как поместить подстановочный знак в / etc / hosts?
85
Недавно я хотел указать все поддомены для тестового домена, скажем, example.com на localhost. Есть ли способ указать все запросы на * .example.com для разрешения на 127.0.0.1
Бывает, что /etc/hostsфайл не поддерживает записи с подстановочными знаками.
Вам придется использовать другие службы, такие как dnsmasq. Чтобы включить его в dnsmasq, просто отредактируйте dnsmasq.confи добавьте следующую строку:
rahilwazir, на самом деле, это если вам не нужны все поддомены. # также работает как подстановочный знак. Я лично использую `address = / dev # .example.com / 127.0.0.1, чтобы dev123.example.com работал и т.д.
Рэй Фосс,
8
Вот конфигурация для тех, кто пытается достичь исходной цели (все подстановочные знаки указывают на одну и ту же кодовую базу - ничего не устанавливать, среда разработки, то есть XAMPP)
файл hosts (добавить запись)
файл: / etc / hosts (не для Windows)
127.0.0.1 example.local
Конфигурация httpd.conf (включить vhosts)
файл: /XAMPP/etc/httpd.conf
# Virtual hosts
Include etc/extra/httpd-vhosts.conf
сохраните как something.pac где хотите, а затем загрузите файл в сеть браузера> прокси> настройки auto_configuration (перезагрузите, если вы измените это)
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*example.local")) {
return "PROXY example.local";
}
return "DIRECT";
}
Не работает с файлом hosts в Windows. Он будет принимать только www.example.com
Андре Фигейредо
1
это работает в Windows с использованием файла pac в firefox. Я тестировал это на нескольких машинах с Windows. файл hosts требует только одну запись, файл pac обрабатывает поддомены.
Даниэль Хорди
1
Исходный вопрос, насколько я понимаю, касается вообще не apache, а сетевого уровня, поэтому я думаю, что ваш ответ упускает суть: /
Обратите внимание, что при использовании pac-файла для прокси-запросов к хосту (например, localhost) веб-сервер, такой как Apache, будет использовать полный URL-адрес (включая протокол и имя хоста) в переменной REQUEST_URI вместо только компонента пути.
JSchirrmacher
5
использовать 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, чтобы изменения вступили в силу!
Ответы:
Бывает, что
/etc/hosts
файл не поддерживает записи с подстановочными знаками.Вам придется использовать другие службы, такие как dnsmasq. Чтобы включить его в dnsmasq, просто отредактируйте
dnsmasq.conf
и добавьте следующую строку:источник
dnsmasq
настройки ubuntu см. Этот .Вот конфигурация для тех, кто пытается достичь исходной цели (все подстановочные знаки указывают на одну и ту же кодовую базу - ничего не устанавливать, среда разработки, то есть XAMPP)
файл hosts (добавить запись)
файл: / etc / hosts (не для Windows)
Конфигурация httpd.conf (включить vhosts)
файл: /XAMPP/etc/httpd.conf
Конфигурация httpd-vhosts.conf
файл: XAMPP / etc / extra / httpd-vhosts.conf
перезапустить apache
создать файл pac:
сохраните как something.pac где хотите, а затем загрузите файл в сеть браузера> прокси> настройки auto_configuration (перезагрузите, если вы измените это)
источник
использовать dnsmasq
делая вид, что вы используете дистрибутив на основе debian (ubuntu, mint ..), проверьте, установлен ли он с помощью
Если он просто отключен, запустите его с
Если надо его установить, напишите
Чтобы определить домены для разрешения редактирования,
/etc/dnsmasq.conf
как этодля разрешения * .example.com
! Вам необходимо перезагрузить dnsmasq, чтобы изменения вступили в силу!
источник