J'écris une application Web qui se comporte différemment en fonction d'un préfixe d'url. Le format est quelque chose comme:
https://myprefix.mycompany.com
L'application Web se comporte différemment en fonction de mon préfixe. Mon application Web extrait cette partie de l'URL et agit en conséquence.
Cependant, lorsque je teste sur mon local, j'utilise une adresse localhost:
https://localhost:1234
Je ne conseille pas de faire quelque chose comme:
https://myprefix.localhost:1234
Quelle est la meilleure façon pour moi de tester ce scénario?
Merci beaucoup
Réponses:
Malheureusement, comme ce
localhost
n'est pas un domaine approprié, vous ne pouvez pas y ajouter un sous-domaine comme ça. Vous pouvez cependant tromper votre ordinateur en lui faisant croire qu'il possède un domaine spécifique et tester les choses de cette façon. Par exemple, si vous avez un système d'exploitation basé sur UNIX, ouvrez (en tant que root) le fichier/etc/hosts
et ajoutez une ou plusieurs lignes comme ceci:Votre ordinateur traitera désormais les deux
example.com
etsubdomain.example.com
comme appartenant à lui-même. Si vous visitez l'un ou l'autre dans votre navigateur Web, ils fonctionneront de la même manière, en principe, quelocalhost
, mais votre serveur Web verra le domaine correct dans son en-tête Host.la source
http://subdomain.example.com:1234/whatever
. Le port est entièrement séparé du domaine (les domaines sont utilisés pour identifier la machine, les ports sont utilisés pour identifier le programme de la machine avec lequel communiquer).127.0.0.1 example.com sub.example.com sub2.example.com...
C:\Windows\System32\drivers\etc\hosts
. Vous devrez copier le fichier dans un autre endroit disposant d'autorisations plus faibles (comme votre bureau), pour le modifier, puis le recoller dans le dossier (pour contourner les autorisations).Je ne suis pas sûr du même comportement aux fenêtres. Je travaille sur linux mint.
Vous pouvez utiliser
lvh.me:port
comme domaine local. Vous pouvez imaginer que votre projet est déployélocalhost:port
sur ce domaine.Au lieu d'
sub.localhost:port
utilisersub.lvh.me:port
UPD
sub.localhost:port
fonctionne à chrome. Firefox ajoute automatiquement www. au début du domaine saisi qui peut poser des problèmes lors du test des sous-domainesla source
172.16.0.42
, vous pouvez l'utiliser àhttps://myprefix.myapp.172.16.0.42.nip.io:1234
partir de votre PC ou d'autres PC de votre intranet.Pour les utilisateurs de Windows, sur la base de cette réponse et de ce commentaire, vous pouvez y parvenir en ajoutant des ports à localhost via le fichier hosts qui réside à ce chemin:
Et ajoutez-y des lignes comme les suivantes:
la source
Solution en une ligne pour Windows
Ouvrez PowerShell en tant qu'administrateur et exécutez la commande suivante, en remplaçant
sub.mydomain.com
par ce que vous voulez.Panne:
`n
- nouvelle ligne127.0.0.1
- adresse de bouclagesub.mydomain.com
- nom de domaine| Out-File C:\Windows\System32\drivers\etc\hosts
- pipe la corde vers lehosts
-encoding ASCII
- encodage correct-append
- ajouter à la fin du fichier (important!)la source
Vous devriez utiliser le
.test
domaine pour des choses comme ça. C'est à ça que ça sert.test
.localhost
n'est pas censé avoir de sous-domaines.Faire ainsi enfreint les normes RFC approuvées.
localhost
a un enregistrement A et dans les environnements IPv6, un enregistrement AAAA. Tous les autres types d'enregistrement DNS, y compris SOA, sont interdits.Sans un enregistrement SOA, il ne peut pas s'agir d'un sommet de zone qui a des sous-enregistrements, donc aucun sous-domaine ni délégation n'est autorisé. Même le récent projet de RFC intitulé Let localhost be localhost est cohérent avec cela.
la source