I've been using .localhost as a TLD for locally hosted sites that I am working on. Usually when I start a new site I create an entry in the apache virutal host configuration file and then add an entry in Windows' hosts file to map the address to The address would be something like sitename.localhost

Today I was working on a new site so I added the entry in the virtual hosts file but I forgot to add an entry to the hosts file. To my surprise the site loaded fine in Chrome without mapping the address to However when I tried to load the site in IE and Firefox, it didn't work and my ISP's website showed up instead.

Is there a reason why Chrome does this and other browsers do not? Is this something that is supposed to happen?

2 Answers 2


From the Wikipedia entry for .localhost (TLD):

As a top-level domain, the name has traditionally been defined statically in host DNS implementations with address records (A and AAAA) pointing to the same loopback addresses.

However, as you have found, it would appear that it's just Chrome and later versions of Opera (possibly the WebKit browsers, so might include Safari also) that appear to do this.

  • I was hoping to get an answer that explains why they do this but I guess that is something that only the developers can explain. Thanks! Jan 12, 2016 at 0:32
  • "Why" (as I understand it) is explained above and in the linked Wikipedia article. example.localhost (TLD) has traditionally pointed to the same loopback address as localhost (domain). So that localhost (in any form) points to Chrome (WebKit?) appears to follow this "tradition"; others do not. There is no standard in this respect, so browsers are free to do as they wish.
    – MrWhite
    Jan 12, 2016 at 0:41
  • Ah yes, you are right. That does explain it. It would be cool if other browsers followed that tradition. Jan 12, 2016 at 1:11

From https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

There's a proposal to add the .localhost domain as a new standard, which will make lives of developers way easier. It would mean site.localhost and everything at *.localhost would automatically translate to, without /etc/hosts or dnsmasq workarounds.

Refer the RFC here.

  • That would make much more sense than having each application test for that one special case! Dec 18, 2019 at 6:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.