I had a Windows 2000 server running two web-sites:
Web-site: Newland
IP Address TCP Port Host Header Name
================ ======== ================
(all unassigned) 80
Web-site: Matchstick
IP Address TCP Port Host Header Name
================ ======== ================
(all unassigned) 80 matchstick.com
(all unassigned) 80 www.matchstick.com
(all unassigned) 80 m.matchstick.com
And all was well. People requesting matchstick.com
(or the other two variants) would get the Matchstick web-site. Requests for web-sites by any other name would go to the "default" Newland site.
This morning I changed the router to point to a new Windows Server 2003, rather than a Windows 2000 Server. The two sites on the Windows Server 2003 are configured as:
Web-site: Newland
IP Address TCP Port Host Header Name
================ ======== ================
Default 80
Web-site: Matchstick
IP Address TCP Port Host Header Name
================ ======== ================
Default 80 matchstick.com
Default 80 www.matchstick.com
Default 80 m.matchstick.com
And all is not right; anyone requesting:
matchstick.com
www.matchstick.com
m.matchstick.com
get the default Newland site, rather than the Matchstick site.
Note: You'll notice that Windows 2000 Server shows "(All unassigned)" as the IP address. Windows Server 2003 shows the word "Default" as the IP address - even though you selected "(All unassigned)"
Windows Server 2003:
Windows 2000 Server:
I presume the bug has something to do with this; since this is the only difference.
How do you configure host-header name resolution on Windows Server 2003 - with fallback to a default site.
Found the problem:
Web-site: Newland
Home Directory: D:\WebSites\Newland
Web-site: Matchstick
Home Directory: D:\WebSites\Newland
D:\WebSites\Matchstick
X-IsThisTheNewServer: serverfault.com
. In Fiddler i see the request contains thematchstick
host header name, and the response contains the response header. i even test this locally on the server; adding amatchstick.com
entry to the hosts file pointing to127.0.0.1
.