Niedawno chciałem wskazać wszystkie subdomeny dla domeny testowej, powiedzmy example.com, do lokalnego hosta. Czy istnieje sposób na skierowanie wszystkich żądań na * .example.com do rozwiązania 127.0.0.1?
Odpowiedzi:
Zdarza się, że /etc/hosts
plik nie obsługuje wpisów z symbolami wieloznacznymi.
Będziesz musiał skorzystać z innych usług, takich jak dnsmasq. Aby włączyć to w dnsmasq, po prostu edytuj dnsmasq.conf
i dodaj następujący wiersz:
address=/example.com/127.0.0.1
dnsmasq
konfiguracji Ubuntu zobacz ten .
Oto konfiguracja dla tych, którzy próbują osiągnąć pierwotny cel (wszystkie symbole wieloznaczne wskazują na tę samą bazę kodu - nic nie instaluj, środowisko programistyczne, tj. XAMPP)
plik: / etc / hosts (inne niż Windows)
127.0.0.1 example.local
plik: /XAMPP/etc/httpd.conf
# Virtual hosts
Include etc/extra/httpd-vhosts.conf
plik: 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>
zrestartuj apache
zapisz jako cokolwiek.pac, gdziekolwiek chcesz, a następnie załaduj plik w sieci przeglądarki> proxy> ustawienia automatycznej konfiguracji (załaduj ponownie, jeśli to zmienisz)
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*example.local")) {
return "PROXY example.local";
}
return "DIRECT";
}
użyj dnsmasq
udając, że używasz systemu dist opartego na Debianie (ubuntu, mint ..), sprawdź, czy jest zainstalowany z
(sudo) systemctl status dnsmasq
Jeśli jest po prostu wyłączony, zacznij od
(sudo) systemctl start dnsmasq
Jeśli musisz go zainstalować, napisz
(sudo) apt-get install dnsmasq
Aby zdefiniować domeny, aby rozwiązać /etc/dnsmasq.conf
taką edycję
address=/example.com/127.0.0.1
aby rozwiązać * .example.com
! Musisz przeładować dnsmasq, aby zmiany zaczęły obowiązywać!
systemctl reload dnsmasq