How to put wildcard entry into /etc/hosts?

后端 未结 3 997
自闭症患者
自闭症患者 2020-11-30 23:47

I recently wanted to point all subdomains for a test domain, let\'s say example.com to the localhost. Is there a way to point all requests on *.example.com to resolve to 127

相关标签:
3条回答
  • 2020-12-01 00:12

    It happens that /etc/hosts file doesn't support wild card entries.

    You'll have to use other services like dnsmasq. To enable it in dnsmasq, just edit dnsmasq.conf and add the following line:

    address=/example.com/127.0.0.1
    
    0 讨论(0)
  • 2020-12-01 00:14

    Here is the configuration for those trying to accomplish the original goal (wildcards all pointing to same codebase -- install nothing, dev environment ie, XAMPP)

    hosts file (add an entry)

    file: /etc/hosts (non-windows)

    127.0.0.1   example.local
    

    httpd.conf configuration (enable vhosts)

    file: /XAMPP/etc/httpd.conf

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

    httpd-vhosts.conf configuration

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

    <VirtualHost *:80>
        ServerAdmin admin@example.local
        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>
    

    restart apache

    create pac file:

    save as whatever.pac wherever you want to and then load the file in the browser's network>proxy>auto_configuration settings (reload if you alter this)

    function FindProxyForURL(url, host) {
      if (shExpMatch(host, "*example.local")) {
        return "PROXY example.local";
      }
      return "DIRECT";
    }
    
    0 讨论(0)
  • 2020-12-01 00:21

    use dnsmasq

    pretending you're using a debian-based dist(ubuntu,mint..), check if it's installed with

    (sudo) systemctl status dnsmasq
    

    If it is just disabled start it with

    (sudo) systemctl start dnsmasq
    

    If you have to install it, write

    (sudo) apt-get install dnsmasq
    

    To define domains to resolve edit /etc/dnsmasq.conf like this

    address=/example.com/127.0.0.1
    

    to resolve *.example.com

    ! You need to reload dnsmasq to take effect for the changes !

    systemctl reload dnsmasq
    
    0 讨论(0)
提交回复
热议问题