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?
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:
address=/example.com/127.0.0.1
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)
Datei: / etc / hosts (Nicht-Windows)
127.0.0.1 example.local
Datei: /XAMPP/etc/httpd.conf
# Virtual hosts
Include etc/extra/httpd-vhosts.conf
Datei: 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>
Starten Sie Apache neu
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";
}
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.conf
wie diese
address=/example.com/127.0.0.1
zu lösen * .example.com
! Sie müssen dnsmasq neu laden, damit die Änderungen wirksam werden!
systemctl reload dnsmasq