Нещодавно я хотів вказати всі субдомени для тестового домену, скажімо 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
збережіть як-небудь .pac де завгодно, а потім завантажте файл у мережу браузера> проксі> налаштування авто_конфігурації (перезавантажте, якщо ви це зміните)
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