161 votes

Ajouter un sous-domaine à l'URL localhost

Je suis en train d'écrire une application web qui se comporte différemment en fonction d'un préfixe d'URL. Le format est quelque chose comme :

   https://monprefixe.monentreprise.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 en local, j'utilise une adresse localhost :

   https://localhost:1234

Je n'ai pas pu faire quelque chose comme :

   https://monprefixe.localhost:1234

Quel est le meilleur moyen pour moi de tester ce scénario ?

Merci beaucoup

221voto

Matt Patenaude Points 4007

Malheureusement, parce que localhost n'est pas un domaine correct, vous ne pouvez pas ajouter un sous-domaine comme ça. Vous pouvez, cependant, tromper votre ordinateur en pensant qu'il possède un domaine spécifique et tester les choses de cette manière. 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 ligne (ou des lignes) comme ceci :

127.0.0.1    example.com
127.0.0.1    subdomain.example.com

Votre ordinateur traitera maintenant à la fois example.com et subdomain.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, que localhost, mais votre serveur web verra le domaine correct dans son en-tête Host.

56voto

Vassiliy Vorobyov Points 1008

Je ne suis pas sûr du comportement sur Windows. Je travaille sous linux mint.

Vous pouvez utiliser lvh.me:port comme domaine local. Vous pouvez imaginer que votre projet est déployé sur localhost:port sur ce domaine.

Au lieu de sub.localhost:port vous devez utiliser sub.lvh.me:port

MISE À JOUR

sub.localhost:port fonctionne sur Chrome.

Remarque: Firefox ajoute automatiquement www. au début du domaine saisi, ce qui peut poser des problèmes avec les tests de sous-domaines

10voto

Shimmy Points 23393

Pour les utilisateurs de Windows, en fonction de cette réponse et suivant ce commentaire, vous pouvez y parvenir en ajoutant des ports à localhost via le fichier hosts qui se trouve à cet emplacement :

C:\Windows\System32\drivers\etc\hosts

Et ajoutez des lignes comme celles-ci :

127.0.0.1    example.com
127.0.0.1    subdomain.example.com

5voto

Richard Dunn Points 1122

Solution en une seule 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.

"`n127.0.0.1    sub.mydomain.com" | Out-File C:\Windows\System32\drivers\etc\hosts -encoding ASCII -append

Détails:

  • `n - saut de ligne
  • 127.0.0.1 - adresse de bouclage
  • sub.mydomain.com - nom de domaine
  • | Out-File C:\Windows\System32\drivers\etc\hosts - redirigez la chaîne vers les hosts
  • -encoding ASCII - encodage correct
  • -append - ajoutez à la fin du fichier (important!)

5voto

MR.X Points 59

Vous devriez utiliser le domaine .test pour des choses comme ça. C'est pour cela que .test existe. localhost n'est pas censé avoir de sous-domaines.

Le faire 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 enregistrement SOA, il ne peut pas être un sommet de zone qui a des sous-enregistrements, donc aucun sous-domaine ni délégations ne sont autorisés. Même le récent projet de RFC intitulé Laisser localhost être localhost est conforme à cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X