diff --git a/wp-nginx-map.php b/wp-nginx-map.php
index f01c18f79f57b9890c021016e6d8d3265a1cfdef..ec241f080fc7f6b8bccc7a1761b1b31b2d154f62 100644
--- a/wp-nginx-map.php
+++ b/wp-nginx-map.php
@@ -33,13 +33,11 @@ function backend_to_http_endpoint($backend) {
 }
 
 // Print the blog -> backend map.
-function generate_map() {
+function generate_backend_map($blogs) {
   global $wpdb;
   global $noblogs_master;
   $wpdb_hash = &$wpdb->hash_map;
 
-  $blogs = get_blogs();
-
   printline('map $http_host $backend_noblogs {');
   printline(' default http://' . $noblogs_master . ':82;');
   foreach ($blogs as $blog) {
@@ -53,5 +51,24 @@ function generate_map() {
   printline('}');
 }
 
+// Print the blog -> site map.
+// This is used to send apache the right site name for logging purposes.
+function generate_site_map($blogs) {
+  printline('map $http_host $site_noblogs {');
+  printline(' default noblogs.org;');
+  foreach ($blogs as $blog) {
+    $blog_id = $blog->blog_id;
+    if ($blog_id == 1)
+      continue;
+    printline(' ' . $blog->domain . ' ' . $blog->domain . ';');
+  }
+  printline('}');
+}
+
+function generate_maps() {
+  $all_blogs = get_blogs();
+  generate_backend_map($all_blogs);
+  generate_site_map($all_blogs);
+}
 
-generate_map();
+generate_maps();