Недавно я хотел указать все поддомены для тестового домена, скажем, example.com на localhost. Есть ли способ указать все запросы на * .example.com для разрешения на 127.0.0.1
Ответы:
Бывает, что /etc/hosts
файл не поддерживает записи с подстановочными знаками.
Вам придется использовать другие службы, такие как dnsmasq. Чтобы включить его в dnsmasq, просто отредактируйте dnsmasq.conf
и добавьте следующую строку:
address=/example.com/127.0.0.1
dnsmasq
настройки ubuntu см. Этот .
Вот конфигурация для тех, кто пытается достичь исходной цели (все подстановочные знаки указывают на одну и ту же кодовую базу - ничего не устанавливать, среда разработки, то есть XAMPP)
файл: / etc / hosts (не для Windows)
127.0.0.1 example.local
файл: /XAMPP/etc/httpd.conf
# Virtual hosts
Include etc/extra/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
сохраните как something.pac где хотите, а затем загрузите файл в сеть браузера> прокси> настройки 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