Msg#: 4588565 posted 8:01 pm on Jun 28, 2013 (gmt 0)
Why are you redirecting the sitemap? The chances that someone will have an old bookmark for the sitemap are vanishingly small. Just put its current actual URL in robots.txt. Or put the sitemap in the root; search engines will look for it there even if robots.txt doesn't say anything about it.
No reason to muck about with explicit .gz either. Let the server take care of compression if it feels so inclined.
The main problem is that your question mixes up two different things. One is the URL; the other is physical location. Your blog may live in a directory within a directory within a directory, but the only thing visitors-- including the googlebot-- need to know is that its URL is blog.example.com.
If you have a subdomain, you need one robots.txt at www.example.com/robots.txt and another at blog.example.com/robots.txt regardless of where they physically live. If the two robots.txt happen to be identical, you can rewrite -- NOT redirect -- requests for one so they point to the other. Not even the googlebot knows when it has been rewritten.
Same goes for sitemaps. As far as a visitor is concerned, blog.example.com is the root.