? gzip-101227.patch
Index: .htaccess
===================================================================
RCS file: /cvs/drupal/drupal/.htaccess,v
retrieving revision 1.102
diff -u -p -r1.102 .htaccess
--- .htaccess 9 Jun 2009 05:08:16 -0000 1.102
+++ .htaccess 21 Jun 2009 03:23:45 -0000
@@ -7,6 +7,16 @@
Order allow,deny
+# Gzip compressed css files are of the type 'text/css'.
+
+ ForceType text/css
+
+
+# Gzip compressed js files are of the type 'text/javascript'.
+
+ ForceType text/javascript
+
+
# Don't show directory listings for URLs which map to a directory.
Options -Indexes
@@ -54,6 +64,12 @@ DirectoryIndex index.php index.html inde
+# Requires mod_mime to be enabled.
+
+ # send any files ending in .gz with x-gzip encoding in the header.
+ AddEncoding x-gzip .gz
+
+
# Various rewrite rules.
RewriteEngine on
@@ -89,6 +105,16 @@ DirectoryIndex index.php index.html inde
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
+
+ # Serve gzip compressed css files
+ RewriteCond %{HTTP:Accept-encoding} gzip
+ RewriteCond %{REQUEST_FILENAME}\.gz -s
+ RewriteRule (.*)\.css$ $1\.css\.gz [L,QSA,T=text/css]
+
+ # Serve gzip compressed js files
+ RewriteCond %{HTTP:Accept-encoding} gzip
+ RewriteCond %{REQUEST_FILENAME}\.gz -s
+ RewriteRule (.*)\.js$ $1\.js\.gz [L,QSA,T=text/javascript]
# $Id: .htaccess,v 1.102 2009/06/09 05:08:16 dries Exp $
Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.925
diff -u -p -r1.925 common.inc
--- includes/common.inc 18 Jun 2009 21:19:01 -0000 1.925
+++ includes/common.inc 21 Jun 2009 03:23:46 -0000
@@ -2530,6 +2530,9 @@ function drupal_build_css_cache($types,
// Create the CSS file.
file_unmanaged_save_data($data, $csspath . '/' . $filename, FILE_EXISTS_REPLACE);
+ if (variable_get('page_compression', TRUE)) {
+ file_unmanaged_save_data(gzencode($data, 9), $csspath . '/' . $filename . '.gz', FILE_EXISTS_REPLACE);
+ }
}
return $csspath . '/' . $filename;
}
@@ -3112,6 +3115,9 @@ function drupal_build_js_cache($files, $
// Create the JS file.
file_unmanaged_save_data($contents, $jspath . '/' . $filename, FILE_EXISTS_REPLACE);
+ if (variable_get('page_compression', TRUE)) {
+ file_unmanaged_save_data(gzencode($contents, 9), $jspath . '/' . $filename . '.gz', FILE_EXISTS_REPLACE);
+ }
}
return $jspath . '/' . $filename;