Wie füge ich einen Platzhalter in / etc / hosts ein?
81
Ich wollte kürzlich alle Subdomains für eine Testdomain verweisen, sagen wir example.com auf den localhost. Gibt es eine Möglichkeit, alle Anforderungen auf * .example.com auf 127.0.0.1 zu verweisen?
Es kommt vor, dass die /etc/hostsDatei keine Platzhaltereinträge unterstützt.
Sie müssen andere Dienste wie dnsmasq verwenden. Um es in dnsmasq zu aktivieren, bearbeiten Sie einfach dnsmasq.confdie folgende Zeile und fügen Sie sie hinzu:
Rahilwazir, eigentlich ist es, wenn Sie nicht alle Subdomains wollen. # funktioniert auch als Platzhalter. Ich persönlich verwende ʻaddress = / dev # .example.com / 127.0.0.1, damit dev123.example.com usw. funktioniert.
Ray Foss
6
Hier ist die Konfiguration für diejenigen, die versuchen, das ursprüngliche Ziel zu erreichen (Platzhalter, die alle auf dieselbe Codebasis verweisen - nichts installieren, Entwicklungsumgebung, dh XAMPP)
Hosts-Datei (Eintrag hinzufügen)
Datei: / etc / hosts (Nicht-Windows)
127.0.0.1 example.local
httpd.conf Konfiguration (vhosts aktivieren)
Datei: /XAMPP/etc/httpd.conf
# Virtual hosts
Include etc/extra/httpd-vhosts.conf
Speichern Sie als Whatever.pac, wo immer Sie möchten, und laden Sie die Datei dann in die Einstellungen Netzwerk> Proxy> Autokonfiguration des Browsers (laden Sie sie neu, wenn Sie dies ändern)
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*example.local")) {
return "PROXY example.local";
}
return "DIRECT";
}
Funktioniert nicht für Hosts-Dateien unter Windows. Es wird nur www.example.com
Andre Figueiredo
1
Dies funktioniert unter Windows mit der pac-Datei in Firefox. Ich habe dies auf mehreren Windows-Computern getestet. Die Hosts-Datei benötigt nur einen Eintrag, die Pac-Datei behandelt die Subdomains.
Daniel Jordi
1
Die ursprüngliche Frage, so wie ich sie verstehe, handelt überhaupt nicht von Apache, sondern auf Netzwerkebene. Ich denke, Ihre Antwort verfehlt den Punkt: /
Beachten Sie, dass ein Webserver wie Apache bei Verwendung einer pac-Datei zum Proxy von Anforderungen an einen Host (z. B. localhost) die vollständige URL (einschließlich Protokoll und Hostname) in der Variablen REQUEST_URI anstelle nur der Pfadkomponente verwendet.
JSchirrmacher
4
benutze dnsmasq
Stellen Sie sich vor, Sie verwenden ein debian-basiertes dist (ubuntu, mint ..) und prüfen, ob es mit installiert ist
(sudo) systemctl status dnsmasq
Wenn es nur deaktiviert ist, starten Sie es mit
(sudo) systemctl start dnsmasq
Wenn Sie es installieren müssen, schreiben Sie
(sudo) apt-get install dnsmasq
So definieren Domänen zu lösen bearbeiten /etc/dnsmasq.confwie diese
address=/example.com/127.0.0.1
zu lösen * .example.com
! Sie müssen dnsmasq neu laden, damit die Änderungen wirksam werden!
Antworten:
Es kommt vor, dass die
/etc/hosts
Datei keine Platzhaltereinträge unterstützt.Sie müssen andere Dienste wie dnsmasq verwenden. Um es in dnsmasq zu aktivieren, bearbeiten Sie einfach
dnsmasq.conf
die folgende Zeile und fügen Sie sie hinzu:quelle
dnsmasq
Setup finden Sie in diesem .Hier ist die Konfiguration für diejenigen, die versuchen, das ursprüngliche Ziel zu erreichen (Platzhalter, die alle auf dieselbe Codebasis verweisen - nichts installieren, Entwicklungsumgebung, dh XAMPP)
Hosts-Datei (Eintrag hinzufügen)
Datei: / etc / hosts (Nicht-Windows)
httpd.conf Konfiguration (vhosts aktivieren)
Datei: /XAMPP/etc/httpd.conf
httpd-vhosts.conf Konfiguration
Datei: XAMPP / etc / extra / httpd-vhosts.conf
Starten Sie Apache neu
Pac-Datei erstellen:
Speichern Sie als Whatever.pac, wo immer Sie möchten, und laden Sie die Datei dann in die Einstellungen Netzwerk> Proxy> Autokonfiguration des Browsers (laden Sie sie neu, wenn Sie dies ändern)
quelle
benutze dnsmasq
Stellen Sie sich vor, Sie verwenden ein debian-basiertes dist (ubuntu, mint ..) und prüfen, ob es mit installiert ist
Wenn es nur deaktiviert ist, starten Sie es mit
Wenn Sie es installieren müssen, schreiben Sie
So definieren Domänen zu lösen bearbeiten
/etc/dnsmasq.conf
wie diesezu lösen * .example.com
! Sie müssen dnsmasq neu laden, damit die Änderungen wirksam werden!
quelle