Piszę aplikację internetową, która zachowuje się różnie w zależności od prefiksu adresu URL. Format jest taki:
https://myprefix.mycompany.com
Aplikacja internetowa zachowuje się inaczej w zależności od myprefix. Moja aplikacja internetowa wyodrębnia tę część z adresu URL i działa zgodnie z nią.
Jednak kiedy testuję na moim lokalnym, używam adresu localhost:
https://localhost:1234
Nie radzę robić czegoś takiego:
https://myprefix.localhost:1234
Jaki jest najlepszy sposób na przetestowanie tego scenariusza?
Wielkie dzięki
Odpowiedzi:
Niestety, ponieważ
localhost
nie jest to właściwa domena, nie możesz dodać do niej subdomeny w ten sposób. Państwo może jednak oszukać komputer do myślenia, że jest właścicielem domeny specyficzne i rzeczy testowych w ten sposób. Na przykład, jeśli masz system operacyjny oparty na UNIX, otwórz (jako root) plik/etc/hosts
i dodaj linię (lub wiersze) w następujący sposób:Twój komputer będzie teraz traktował oba te elementy
example.com
isubdomain.example.com
jako należący do siebie. Jeśli odwiedzisz którąkolwiek w swojej przeglądarce internetowej, będą one zasadniczo działać tak samo, jaklocalhost
, ale Twój serwer internetowy zobaczy prawidłową domenę w nagłówku Host.źródło
http://subdomain.example.com:1234/whatever
. Port jest całkowicie oddzielony od domeny (domeny służą do identyfikacji komputera, porty służą do identyfikowania programu na komputerze, z którym ma się komunikować).127.0.0.1 example.com sub.example.com sub2.example.com...
C:\Windows\System32\drivers\etc\hosts
. Będziesz musiał skopiować plik w inne miejsce, które ma niższe uprawnienia (na przykład na pulpit), aby go edytować, a następnie wkleić z powrotem do folderu (aby obejść uprawnienia).Nie jestem pewien co do tego samego zachowania w oknach. Pracuję na Linux Mint.
Możesz używać
lvh.me:port
jako domeny lokalnej. Możesz sobie wyobrazić, że Twój projekt jest wdrażanylocalhost:port
w tej domenie.Zamiast
sub.localhost:port
używaćsub.lvh.me:port
UPD
sub.localhost:port
działa na chrome. Firefox automatycznie dodaje www. na początku wpisanej domeny, która może powodować problemy z testowaniem subdomenźródło
172.16.0.42
, możesz użyćhttps://myprefix.myapp.172.16.0.42.nip.io:1234
z twojego komputera lub z innych komputerów w intranecie.W przypadku użytkowników systemu Windows, na podstawie tej odpowiedzi i tego komentarza, możesz to osiągnąć, dodając porty do hosta lokalnego za pośrednictwem pliku hosts znajdującego się w tej ścieżce:
I dołącz do niego wiersze, takie jak następujące:
źródło
Rozwiązanie jednowierszowe dla systemu Windows
Otwórz PowerShell jako administrator i uruchom następujące polecenie, zastępując
sub.mydomain.com
je dowolnymi.Awaria:
`n
- Nowa linia127.0.0.1
- adres sprzężenia zwrotnegosub.mydomain.com
- Nazwa domeny| Out-File C:\Windows\System32\drivers\etc\hosts
- przeprowadź przewód dohosts
-encoding ASCII
- prawidłowe kodowanie-append
- dołącz do końca pliku (ważne!)źródło
Powinieneś używać
.test
domeny do takich celów. Po to.test
jest.localhost
nie powinien mieć żadnych subdomen.Takie postępowanie narusza zatwierdzone standardy RFC.
localhost
ma rekord A, aw środowiskach IPv6 - rekord AAAA. Wszystkie inne typy rekordów DNS, w tym SOA, są zabronione.Bez rekordu SOA nie może to być wierzchołek strefy, który ma rekordy podrzędne, więc żadne subdomeny ani delegacje nie są dozwolone. Nawet ostatnia wersja robocza RFC zatytułowana Let localhost be localhost jest z tym zgodna.
źródło