Ich schreibe eine Webanwendung, die sich je nach URL-Präfix unterschiedlich verhält. Das Format ist ungefähr so:
https://myprefix.mycompany.com
Die Web-App verhält sich basierend auf myprefix unterschiedlich. Meine Web-App extrahiert diesen Teil aus der URL und reagiert darauf.
Wenn ich jedoch auf meinem lokalen Server teste, verwende ich eine lokale Hostadresse:
https://localhost:1234
Ich würde so etwas nicht tun:
https://myprefix.localhost:1234
Wie kann ich dieses Szenario am besten testen?
Danke vielmals
Antworten:
Da
localhost
es sich nicht um eine richtige Domain handelt, können Sie leider keine solche Subdomain hinzufügen. Sie können Ihren Computer jedoch dazu verleiten, zu glauben, dass er eine bestimmte Domäne besitzt, und die Dinge auf diese Weise testen. Wenn Sie beispielsweise ein UNIX-basiertes Betriebssystem haben, öffnen Sie die Datei (als Root)/etc/hosts
und fügen Sie eine Zeile (oder Zeilen) wie folgt hinzu:Ihr Computer behandelt nun beide
example.com
undsubdomain.example.com
als zu sich selbst gehörend. Wenn Sie einen der beiden in Ihrem Webbrowser besuchen, funktionieren diese im Prinzip genauso wielocalhost
, aber Ihr Webserver sieht die richtige Domain in seinem Host-Header.quelle
http://subdomain.example.com:1234/whatever
. Der Port ist vollständig von der Domäne getrennt (Domänen werden zur Identifizierung des Computers verwendet, Ports werden zur Identifizierung des Programms auf dem Computer verwendet, mit dem kommuniziert werden soll).127.0.0.1 example.com sub.example.com sub2.example.com...
C:\Windows\System32\drivers\etc\hosts
. Sie müssen die Datei an einen anderen Ort mit niedrigeren Berechtigungen (z. B. Ihren Desktop) kopieren, um sie zu bearbeiten und dann wieder in den Ordner einzufügen (um die Berechtigungen zu umgehen).Ich bin mir über das gleiche Verhalten bei Windows nicht sicher. Ich arbeite an Linux Mint.
Sie können
lvh.me:port
als lokale Domain verwenden. Sie können sich vorstellen, dass Ihr Projekt inlocalhost:port
dieser Domäne bereitgestellt wird .Anstatt müssen
sub.localhost:port
Sie verwendensub.lvh.me:port
UPD
sub.localhost:port
arbeitet bei Chrom. Firefox fügt automatisch www hinzu. am Anfang der eingegebenen Domain, die Probleme beim Testen von Subdomains verursachen kannquelle
172.16.0.42
, können Sie siehttps://myprefix.myapp.172.16.0.42.nip.io:1234
von Ihrem PC oder von anderen PCs in Ihrem Intranet aus verwenden.Für Windows-Benutzer können Sie dies basierend auf dieser Antwort und gemäß diesem Kommentar erreichen, indem Sie Ports zu localhost über die Hosts- Datei hinzufügen , die sich unter diesem Pfad befindet:
Und fügen Sie Zeilen wie die folgenden hinzu:
quelle
Einzeilige Lösung für Windows
Öffnen Sie PowerShell als Administrator und führen Sie den folgenden Befehl aus. Ersetzen
sub.mydomain.com
Sie ihn durch den gewünschten Befehl .Nervenzusammenbruch:
`n
- Neue Zeile127.0.0.1
- Loopback-Adressesub.mydomain.com
- Domainname| Out-File C:\Windows\System32\drivers\etc\hosts
- Pipe die Saite an diehosts
-encoding ASCII
- korrekte Kodierung-append
- an Dateiende anhängen (wichtig!)quelle
Sie sollten die
.test
Domain für solche Dinge verwenden. Dafür ist da.test
.localhost
soll keine Subdomains haben.Dies verstößt gegen die genehmigten RFC-Standards.
localhost
hat einen A-Eintrag und in IPv6-Umgebungen einen AAAA-Eintrag. Alle anderen DNS-Eintragstypen, einschließlich SOA, sind verboten.Ohne einen SOA-Datensatz kann es sich nicht um einen Zonenscheitelpunkt mit Unterdatensätzen handeln. Daher sind keine Unterdomänen oder Delegierungen zulässig. Sogar der jüngste RFC-Entwurf mit dem Titel Let localhost be localhost stimmt damit überein.
quelle