Friday, February 06, 2009

Custom Domains and Case Significance in the URLs

This blog is "blogging.nitecruzr.net". If I wanted to dress it up a bit, I might tell you it's "Blogging.Nitecruzr.Net". Either URL should work, equally well.

That's not the case with all blogs, today. Here's an example - "mydomain.com". A normal DNS configuration, per an excerpted Dig log.

MyDomain.com. 3600 IN A 216.239.32.21
MyDomain.com. 3600 IN A 216.239.34.21
MyDomain.com. 3600 IN A 216.239.36.21
MyDomain.com. 3600 IN A 216.239.38.21
www.MyDomain.com. 3600 IN CNAME ghs.google.com.
---
ghs.google.com. 32316 IN CNAME ghs.l.google.com.
ghs.l.google.com. 300 IN A 74.125.43.121


The HTTP traces are rather unique. First, look at "mydomain.blogspot.com", in 2 variations. Look carefully at the URLs - the upper case letters aren't decorative.

GET / HTTP/1.1
Host: mydomain.blogspot.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Connection: close

• Finding host IP address...
• Host IP address = 209.85.133.191
• Finding TCP protocol...
• Binding to local socket...
• Connecting to host...
• Sending request...
• Waiting for response...
Receiving Header:
HTTP/1.1·301·Moved·Permanently(CR)(LF)
Location:·http://www.MyDomain.com/(CR)(LF)

Sending request:

GET / HTTP/1.1
Host: www.MyDomain.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Connection: close

• Finding host IP address...
• Host IP address = 209.85.171.121
• Finding TCP protocol...
• Binding to local socket...
• Connecting to host...
• Sending request...
• Waiting for response...
Receiving Header:
HTTP/1.1·200·OK(CR)(LF)

...

<link·rel="alternate"·type="application/atom+xml"·title="My·Blog·-·Atom"
·href="http://www.MyDomain.com/feeds/posts/default"·/>(LF)
<link·rel="alternate"·type="application/rss+xml"·title="My·Blog·-·RSS"
·href="http://www.MyDomain.com/feeds/posts/default?alt=rss"·/>(LF)

Apparently published to "www.MyDomain.com", from seeing the feed URLs. There's a variation of this result. See if you can spot the difference.

GET / HTTP/1.1
Host: mydomain.blogspot.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Connection: close

• Finding host IP address...
• Host IP address = 74.125.19.191
• Finding TCP protocol...
• Binding to local socket...
• Connecting to host...
• Sending request...
• Waiting for response...

Receiving Header:
HTTP/1.1·200·OK(CR)(LF)

...

<link·rel="alternate"·type="application/atom+xml"·title="My·Blog·-·Atom"
·href="http://www.MyDomain.com/feeds/posts/default"·/>(LF)
<link·rel="alternate"·type="application/rss+xml"·title="My·Blog·-·RSS"
·href="http://www.MyDomain.com/feeds/posts/default?alt=rss"·/>(LF)


The first trace is what you see after transition period has expired, and the blog is explicitly published to the custom domain URL. The second trace is what you see during the transition period, with the blog published to the domain URL (see the feed URL?), but without a "301 Moved Permanently" redirect in place.

OK, so far. How about "www.mydomain.com"?

Sending request:

GET / HTTP/1.1
Host: www.mydomain.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Connection: close

• Finding host IP address...
• Host IP address = 209.85.171.121
• Finding TCP protocol...
• Binding to local socket...
• Connecting to host...
• Sending request...
• Waiting for response...
Receiving Header:
HTTP/1.1·404·Not·Found(CR)(LF)


And here's what you get, when accessing the blog. Look closely at the URL, in the address window. "mydomain.blogspot.com" --> "www.mydomain.com", which can't be found, since the blog was published to "www.MyDomain.com".



D'ohh.

Maybe publishing your blog, using mixed case in the name, isn't a good idea.

This looks like a case of case observation / case preservation gone wrong.

In this case, my advice would be given as
Publish the blog back to BlogSpot, then re publish it to "www.mydomain.com".

http://blogging.nitecruzr.net/2007/11/custom-domain-publishing-and-404-error.html
And hope like heck to not see
Another blog is already hosted at this address.


If you do see the latter error, recycle the domain settings in Google Apps, persistently. Then re publish to the "www" alias again.

>> Top

7 comments:

Sree said...

Thank you! Apparently, the caps in my custom URL messed everything up--but with your advice, I was able to fix it :) I wish Blogger told people upfront not to put capital letters in their custom URLs.

CherylK said...

I agree with Sree. Did the same thing. I posted my problem in the Blogger forum just now but should have commented here, I think. Did I need to buy a new custom domain, again, only with the lower case letters? I clicked on "Switch to Advance Settings" since I've already purchased the domain (www.MauiWowiMN.com) but entered it with all lower case. I still got the message "url not found". I guess I'm still confused.

CherylK said...

I just posted a comment a couple of minutes ago lamenting the fact that I was still getting the "url not found" message. Well, I've tried again and it's now working!!

Thank you so much for your help. I agree with Sree that Blogger needs to advise people to not put caps in their custom URLs!

Chuck said...

Tell them - or edit the URL properly - I'd settle for either. I've told them this, a few times.

Suon Virak Panha said...

thank you so much! It work very well. I just finished change my domain to all small caps and it work perfect.

Joyce said...

Thank you sooooo much. I was researching online about my custom domain issues and you were the only one that fixed my problem!

Chankey Pathak said...

Never imagined that domain names are case sensitive.