324 votes

Caractères génériques dans un fichier d'hôtes Windows

Je veux configurer ma machine de développement locale de façon à ce que toutes les requêtes de *.local sont redirigés vers localhost . L'idée est qu'au fur et à mesure que je développe plusieurs sites, je peux simplement ajouter des vhosts à Apache appelés site1.local , site2.local etc., et qu'ils se résolvent tous en localhost tandis qu'Apache sert un site différent en conséquence.

Je suis sous Windows XP.

J'ai essayé d'ajouter

127.0.0.1       *.local

à mon c:\windows\system32\drivers\etc\hosts a également essayé :

127.0.0.1       .local

Aucun des deux ne semble fonctionner.

Je sais que je peux les configurer sur des numéros de port différents, mais c'est pénible car il est difficile de se souvenir de quel port il s'agit.

Je ne veux pas avoir à configurer un serveur DNS local ou quoi que ce soit de difficile, des suggestions ?

1 votes

N'hésitez pas à utiliser anysubdomain.reconn.co.uk comme solution de contournement (si vous êtes en ligne), qui pointera toujours vers votre hôte local (voir ma réponse ci-dessous).

0 votes

Qu'en est-il d'un script qui analyse le nom du serveur vhosts d'apache et met à jour le fichier hosts ?

1 votes

Je crois que *.local a une sémantique spéciale, et que vous devriez utiliser quelque chose d'inexistant. J'utilise *.dev car je ne pense pas que ce soit réel.

464voto

Petah Points 18432

Acrylic DNS Proxy (gratuit, open source) fait le travail. Il crée un serveur DNS proxy (sur votre propre ordinateur) avec son propre fichier hosts. Le fichier hosts accepte les caractères génériques.

Télécharger à partir du site officiel

http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home

Configuration du proxy DNS d'Acrylic

Pour configurer Acrylic DNS Proxy, installez-le à partir du lien ci-dessus, puis allez dans le menu :

  1. Début
  2. Programmes
  3. Proxy acrylique DNS
  4. Config
  5. Modifier le fichier d'hôtes personnalisés (AcrylicHosts.txt)

Ajoutez les lignes suivantes à la fin du fichier :

127.0.0.1   *.localhost
127.0.0.1   *.local
127.0.0.1   *.lc

Redémarrez le service Acrylic DNS Proxy :

  1. Début
  2. Programmes
  3. Acrilic DNS Proxy
  4. Config
  5. Redémarrer le service acrylique

Vous devrez également ajuster votre paramètre DNS dans les paramètres de votre interface réseau :

  1. Début
  2. Panneau de contrôle
  3. Réseau et Internet
  4. Connexions réseau
  5. Propriétés de la connexion au réseau local
  6. TCP/IPv4

Définissez "Utiliser l'adresse du serveur DNS suivante" :

Preferred DNS Server: 127.0.0.1

Si vous combinez ensuite cette réponse avec celle de jeremyasnyder (à l'aide de VirtualDocumentRoot ), vous pouvez alors configurer automatiquement des domaines/hôtes virtuels en créant simplement un répertoire.

15 votes

Juste pour être clair, le "fichier d'hôtes personnalisé" est AcrylicHosts.txt, et non AcrylicConfiguration.ini. Peut-être que ça devrait être évident, mais ça m'a embrouillé pendant un moment.

0 votes

@Petah - cette configuration exacte fonctionnait pour moi avec des domaines joker, mais elle s'est arrêtée et je n'arrive pas à comprendre pourquoi. Toutes les requêtes renvoient "Cette page est indisponible". J'ai redémarré Acryllic, réinitialisé tous les caches... que pensez-vous qu'il puisse y avoir d'autre ?

1 votes

@SB2055 vérifiez que vos paramètres DNS dans les propriétés de votre réseau sont toujours corrects.

85voto

jeremyasnyder Points 1036

Pour répondre à votre question, vous ne pouvez pas utiliser de caractères génériques dans le fichier hosts sous Windows.

Cependant, si vous souhaitez uniquement modifier le fichier hosts pour faire fonctionner les nouveaux sites.... vous pouvez configurer votre Apache comme ceci et vous n'avez pas besoin de modifier constamment sa configuration :

http://postpostmodern.com/instructional/a-smarter-mamp/

Pour résumer, en se basant sur ma configuration, ajoutez ce qui suit à votre fichier apache.conf :

 LoadModule vhost_alias_module modules/mod_vhost_alias.so

 NameVirtualHost *:80

  <Directory "/xampp/sites">
      Options Indexes FollowSymLinks Includes ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all 
  </Directory>

  <VirtualHost *:80>
      VirtualDocumentRoot c:/xampp/sites/%-1/%-2+/
  </VirtualHost>

Cela me permet d'ajouter une entrée comme :

127.0.0.1       test.dev

et ensuite créer le répertoire, c : \xampp\sites\dev\test et y placer les fichiers nécessaires et ça marche.

L'autre option est d'utiliser <Directory> dans apache.conf et de référencer les pages à partir de http://localhost/project/ .

0 votes

Peut-on utiliser des caractères génériques sous OSX ?

0 votes

Oui, en utilisant Bind - clintberry.com/2011/

33voto

Biri Points 4992

Je ne pense pas que ce soit possible.

De toute façon, vous devez modifier les entrées du virtualroot apache chaque fois que vous ajoutez un nouveau site et un nouvel emplacement, ce n'est donc pas un gros travail de synchroniser le nouveau nom avec le fichier vhost de Windows.

Mise à jour : veuillez consulter la réponse suivante et les commentaires sur cette réponse. Cette réponse a 6 ans et n'est plus correcte.

3 votes

Mais en utilisant Nginx, il n'est pas nécessaire de modifier le fichier de configuration de Nginx pour ajouter un nouveau groupe de domaines de second niveau *.localhost. Donc, c'est le moins du fichier hosts.

9 votes

Je tiens à souligner que lorsque vous avez un site web multilingue, vous pouvez avoir un <VirtualHost> avec ServerAlias *.mydomain.localhost ( * étant le code de la langue), de sorte que vous ne devez pas modifier httpd.conf à chaque fois que vous ajoutez une nouvelle langue ; mais vous devez toujours ajouter le sous-domaine au fichier hosts, d'où la pertinence de la question ci-dessus.

10 votes

Les hôtes virtuels dynamiques sont le mot clé ici et sont pris en charge par la plupart des serveurs, c'est-à-dire Apache et Nginx. Donc non, vous ne devez absolument pas modifier votre configuration Apache à chaque fois que vous créez un projet.

6voto

Joe Points 49

La modification du fichier hosts est moins pénible lorsque vous exécutez "ipconfig /flushdns" à partir de l'invite de commande Windows, au lieu de redémarrer votre ordinateur.

1 votes

Il ne vide pas le cache DNS du navigateur, mais celui de la fenêtre. Il doit donc attendre 20-30 minutes pour que le navigateur libère le cache DNS.

0 votes

Lorsqu'il est configuré pour utiliser les paramètres de proxy du système, Firefox est complètement transparent après une commande "ipconfig /flushdns" (sur Windows 10 en 2020).

5voto

Kevin Hakanson Points 15498

J'ai trouvé un message sur Utilisation du fichier Hosts de Windows qui dit aussi "Aucun joker n'est autorisé".

Dans le passé, j'ai simplement ajouté les entrées supplémentaires au fichier hosts, parce que (comme dit précédemment), ce n'est pas un travail supplémentaire lorsque vous modifiez déjà le fichier de configuration d'apache.

0 votes

Plus le fichier hosts est long, plus la résolution des demandes sera longue. Ce n'est pas une bonne solution si vous avez beaucoup d'entrées.

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