web-dev-qa-db-fra.com

Comment mettre une entrée générique dans / etc / hosts?

J'ai récemment voulu pointer tous les sous-domaines d'un domaine de test, par exemple exemple.com vers l'hôte local. Existe-t-il un moyen de pointer toutes les requêtes sur * .example.com pour les résoudre en 127.0.0.1

71
aamir

Il arrive que le fichier /etc/hosts Ne supporte pas les entrées avec caractères génériques.

Vous devrez utiliser d'autres services comme Dnsmasq. Pour l'activer dans dnsmasq, éditez simplement dnsmasq.conf Et ajoutez la ligne suivante:

address=/example.com/127.0.0.1
87
aamir

Voici la configuration pour ceux qui essaient d’atteindre l’objectif initial (les caractères génériques pointant tous sur la même base de code - rien installer, c’est-à-dire XAMPP)

fichier hosts (ajouter une entrée)

fichier:/etc/hosts (non-windows)

127.0.0.1   example.local

configuration de httpd.conf (enable vhosts)

fichier: /XAMPP/etc/httpd.conf

# Virtual hosts
Include etc/extra/httpd-vhosts.conf

configuration de httpd-vhosts.conf

fichier: XAMPP/etc/extra/httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/path_to_XAMPP/htdocs"
    ServerName example.local
    ServerAlias *.example.local
#    SetEnv APP_ENVIRONMENT development
#    ErrorLog "logs/example.local-error_log"
#    CustomLog "logs/example.local-access_log" common
</VirtualHost>

redémarrer Apache

créer un fichier pac:

enregistrez-le sous le nom que vous voulez.pac où vous voulez, puis chargez le fichier dans le réseau du navigateur> proxy> paramètres de configuration automatique (rechargez-le si vous le modifiez)

function FindProxyForURL(url, Host) {
  if (shExpMatch(Host, "*example.local")) {
    return "PROXY example.local";
  }
  return "DIRECT";
}
6
Daniel Jordi

tilisez dnsmasq

en prétendant utiliser une dist basée sur Debian (ubuntu, menthe ..), vérifiez si elle est installée avec

(Sudo) systemctl status dnsmasq

Si il est juste désactivé le démarrer avec

(Sudo) systemctl start dnsmasq

Si vous devez l'installer, écrivez

(Sudo) apt-get install dnsmasq

Pour définir des domaines pour résoudre edit /etc/dnsmasq.conf comme ça

address=/example.com/127.0.0.1

pour résoudre * .example.com

! Vous devez recharger dnsmasq pour prendre effet pour les modifications!

systemctl reload dnsmasq
3
Immanuel