--- /home/dougal/public_html/wp-cache/wp-cache-phase2.php Wed Jan 31 13:10:33 2007
+++ wp-cache-phase2.php Mon Jun 25 14:31:55 2007
@@ -33,7 +33,8 @@
return;
$script = basename($_SERVER['PHP_SELF']);
if (!in_array($script, $cache_acceptable_files) &&
- wp_cache_is_rejected($_SERVER["REQUEST_URI"]))
+ wp_cache_is_rejected($_SERVER["REQUEST_URI"]) &&
+ stripos($_SERVER["REQUEST_URI"],'wp-cache-fix') !== false)
return;
if (wp_cache_user_agent_is_rejected()) return;
$wp_cache_meta_object = new CacheMeta;
@@ -42,14 +43,17 @@
}
function wp_cache_get_response_headers() {
+ $headers = array();
if(function_exists('apache_response_headers')) {
- $headers = apache_response_headers();
- } else if(function_exists('headers_list')) {
+ $rheaders = apache_response_headers();
+ }
+ if(function_exists('headers_list')) {
$headers = array();
foreach(headers_list() as $hdr) {
list($header_name, $header_value) = explode(': ', $hdr, 2);
$headers[$header_name] = $header_value;
}
+ $headers = array_merge($rheaders, $headers);
} else
$headers = null;
@@ -228,7 +232,27 @@
array_push($wp_cache_meta_object->headers, "Last-Modified: $value");
}
if (!$response{'Content-Type'}) {
- $value = "text/html; charset=\"" . get_settings('blog_charset') . "\"";
+ if (is_feed()) {
+ $type = get_query_var('feed');
+ $type = str_replace('/','',$type);
+ switch ($type) {
+ case 'atom':
+ $value = "application/atom+xml";
+ break;
+ case 'rss':
+ case 'rss2':
+ $value = "application/rss+xml";
+ break;
+ case 'rdf':
+ $value = "application/rdf+xml";
+ break;
+ default:
+ $value = "text/html";
+ }
+ } else {
+ $value = 'text/html';
+ }
+ $value .= "; charset=\"" . get_settings('blog_charset') . "\"";
@header("Content-Type: $value");
array_push($wp_cache_meta_object->headers, "Content-Type: $value");
}