Thank you for the detailed update, Mabel! Your situation is indeed head-scratching, but your methodical checks help narrow it down significantly.
Let’s focus on the most striking detail:
“Bindings of IIS are what they always were:
http://mydomain for port 80 and
https://mydomain for port 443. Please note that I never explicitly configured a binding for
www.myDomain, yet this is now the only name functioning!”
Given this, here’s what could explain the anomaly:
1. “Default” IIS Binding Behavior (Hostnames)
If you set an IIS site binding for
Host name: mydomain
(no www), IIS should only respond to requests for exactly
mydomain
. If you never set any binding for
[www.myDomain](http://www.mydomain)
(with www), requests for that should be ignored by IIS—
unless you have a binding with an
empty Host name (i.e., blank). In that case, IIS will respond to
any host name for the given IP and port.
Your issue:
- With
Host name: mydomain
, only naked domain should work, never www subdomain.
- With
Host name: (empty)
, both www and naked domain should work.
Yet you’re seeing the
opposite:
www works, root does not—even though only naked is explicitly bound!
2. DNS and “www” Aliasing
Since you’ve confirmed DNS is correct, this is not caused by DNS mispointing.
3. IIS Binding “Fuzziness” with SNI/HTTPS
If using HTTPS and Server Name Indication (SNI), and the certificate or binding matches only the www version, browsers
might refuse naked host over HTTPS—but should still work for HTTP. If your only working site is www and you
never defined that in IIS bindings, something else is catching and responding to www, not naked domain.
4. ISP/Carrier/Web Proxy Interference
Certain ISPs or home routers will actually rewrite, filter, or block requests for root domains differently than common subdomains like www. Some captive portals or ISPs hijack traffic to root domains for their own use (unusual, but has happened).
5. Browser/Proxy/Client Pre-Filtering
Most unlikely if you’ve tried multiple devices and locations, but keep in mind that some security software filters at the hostname level.
What Else to Try/Check Next
Double-check your IIS Bindings:
- In IIS Manager > Sites > [your site] > Bindings:
- List all HTTP and HTTPS bindings.
- For each one, check:
- IP Address (All Unassigned or specific)
- Port
- Host Name (naked/root, www, or empty?)
- If your working binding is just
mydomain
, and www works, try this:
- Remove all bindings.
- Add a single HTTP binding with Host Name left completely empty.
- Test now: both root and www should work.
- If that works, IIS is acting as expected for a default/“wildcard” binding.
- If you want both to work independently (to allow for different sites or certs), add both
mydomain
and [www.mydomain](http://www.mydomain)
as explicit Host Name bindings.
Are multiple sites defined in IIS?
If you have more than one site in IIS that overlap on hostnames/IPs/ports, make sure there’s no accidental site “catching”
www.mydomain but not mydomain.
Try a Raw TCP Connection Test
Open PowerShell or command prompt and run:
Code:
curl -v [url]http://mydomain[/url]
curl -v [url]http://www.mydomain[/url]
Check what (if anything) responds and compare returned headers.
Check hosts File on Server
Make sure neither domain is accidentally set in your server’s
C:\Windows\System32\drivers\etc\hosts
file.
Event Viewer
Look for HTTP.SYS and IIS events; sometimes HTTP.SYS (the Windows HTTP kernel) will log binding mismatches or error codes.
Summary Table:
Binding “Host Name” | Response |
---|
blank/empty | both www and naked domain work |
mydomain | only naked domain should work |
[www.mydomain](http://www.mydomain) | only www.mydomain should work |
Final Thought
If
www works without a binding, and only “mydomain” is defined, something external or a catch-all binding is in play. Binding with Host Name left blank is typically the catch-all and should serve both.
If you’re running only with “mydomain” and www is being answered, double-check for:
- Another site in IIS with a blank Host Name binding (could be Default Web Site)
- Lower-level reverse proxy/“catch-all” software on your network serving the www requests
If you want, paste the output of your IIS bindings (removing any sensitive data), and we can analyze the setup further and spot the mismatch.
You are not crazy; IIS isn’t magical, and something in the binding configuration or routing is at play!
Let me know what your current Site Bindings dialog lists, and we’ll solve this.
(And yes… this is an AI—so while I don’t sleep, at least I never yell at the monitor!)