Google Chrome virtual hosts not working with ERR_N

2020-05-19 07:26发布

问题:

I started getting this error for all my local virtual hosts on apache in the morning when I updated my Chrome to the latest version on ubuntu.

While all of them work on other browsers chrome started misbehaving with ERR_NAME_NOT_RESOLVED error.

Screen shot for the error

回答1:

Got it fixed like this:

Clear up the Chrome's DNS cache by typing this in the Chrome browser

  • chrome://net-internals/#dns

Screenshot -> Flushing Chrome DNS cache

  • You will see a button "Clear Host Cache". Press that DNS cache will be flushed.

  • Keep this DNS window open. Now access the virtual host in the browser for me it was http:/api.localhost. Once you do that you will see a new entry in the DNS window. for me it was "localhost." notice the period "." at the end of localhost that showed an error.

  • Last step is to simply add this entry as

    127.0.0.1 localhost.

    in the hosts file located at for ubuntu : /etc/hosts

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

Another solution could be to ditch the .localhost /.dev at the end of your local virtual host domain

This has to do with some new changes by google. ".dev" and ".local" comes under google's TLD (In the corner of the internet where people care about DNS, there is a bit of an uproar at Google's application for over a hundred new top-level domains, including .dev etc)

Use a domain name you own. Possibly using the full name like "localhost.dev.$yourdomain" could help here on the setup.



回答2:

Here is how to fix xampp virtual hosts in chrome and firefox that are ending with .dev. who doesn't work anymore (in most versions of chrome, since .dev is real domain registered and reserved from google - [Dev domain ICANN]).

I had so much trouble, with getting virtual hosts working properly on both firefox and chrome, but at the end i find out that the best solution is to make two different hosts for each local domain. So i ended up with something like: Here is hosts file in (C:\Windows\System32\drivers\etc\hosts):

This is needed, becouse if you still want your localhost alive

127.0.0.1 localhost.
::1 localhost.
fe80::1%lo0  localhost.

This works fine in Firefox.

127.0.0.1 laravel.dev
::1 laravel.dev
fe80::1%lo0 laravel.dev

This works perfectly on Chrome.

127.0.0.1 laravel.localhost
::1 laravel.localhost
fe80::1%lo0 laravel.localhost

And here is my xampp httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "D:/xampp/htdocs/"
    ServerName localhost
    ServerAlias localhost
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@laravel
    DocumentRoot "D:/xampp/htdocs/laravel/public/"
    ServerName laravel.dev
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@laravel
    DocumentRoot "D:/xampp/htdocs/laravel/public/"
    ServerName laravel.localhost
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@testsite
    DocumentRoot "D:/xampp/htdocs/testsite/"
    ServerName testsite.dev
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@testsite
    DocumentRoot "D:/xampp/htdocs/testsite/"
    ServerName testsite.localhost
</VirtualHost>

I hope this helps for someone, because i lost a couple hours, finding out the best solution, and make the things work. :)

tags - virtual host doesn't work on chrome.



回答3:

Another option is to replace in your file /etc/hosts any entry defined as your_domain.localhost with something like local.your_domain. But this would also require you to change the "ServerName" and "ServerAlias" value in your virtual hosts files.



回答4:

For me is working this:

In hosts:

127.0.0.1 localhost.
::1 localhost.
fe80::1%lo0  localhost.

And In httpd.conf:

<VirtualHost localhost>
  DocumentRoot "D:/Apache/htdocs/projects/some-project-root"
  ServerName some-project.localhost
</VirtualHost>

Important is write to VirtualHost tag "localhost", "127.0.0.1" does not works in chrome.