Last active
March 25, 2019 23:50
-
-
Save jasperf/7906efc09e1b5fd09fcb to your computer and use it in GitHub Desktop.
.htaccess boilerplate including expire headers, mod pagespeed, cache control headers, Gzip, Deflate #htaccess #seo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# BEGIN Expire headers | |
AddDefaultCharset UTF-8 | |
<IfModule mod_expires.c> | |
ExpiresActive On | |
ExpiresDefault "access plus 7200 seconds" | |
ExpiresByType image/x-icon "access plus 2592000 seconds" | |
ExpiresByType image/jpeg "access plus 2592000 seconds" | |
ExpiresByType image/png "access plus 2592000 seconds" | |
ExpiresByType image/gif "access plus 2592000 seconds" | |
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" | |
ExpiresByType text/css "access plus 2592000 seconds" | |
ExpiresByType text/javascript "access plus 2592000 seconds" | |
ExpiresByType application/x-javascript "access plus 2592000 seconds" | |
ExpiresByType text/html "access plus 7200 seconds" | |
ExpiresByType application/xhtml+xml "access plus 7200 seconds" | |
ExpiresByType font/ttf "access plus 1 month" | |
ExpiresByType font/woff "access plus 1 month" | |
ExpiresByType image/svg+xml "access plus 1 month" | |
</IfModule> | |
# END Expire headers | |
# BEGIN Cache-Control Headers | |
<IfModule mod_headers.c> | |
<FilesMatch "\\.(ico|jpe?g|png|gif|swf|gz)$"> | |
Header set Cache-Control "max-age=2592000, public" | |
</FilesMatch> | |
<FilesMatch "\\.(css)$"> | |
Header set Cache-Control "max-age=2592000, public" | |
</FilesMatch> | |
<FilesMatch "\\.(js)$"> | |
Header set Cache-Control "max-age=2592000, private" | |
</FilesMatch> | |
<filesMatch "\\.(html|htm)$"> | |
Header set Cache-Control "max-age=7200, public" | |
</filesMatch> | |
# Disable caching for scripts and other dynamic files | |
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> | |
Header unset Cache-Control | |
</FilesMatch> | |
</IfModule> | |
# END Cache-Control Headers | |
#It's worth commenting that cache-control is what all browsers will use, | |
#but it's useful to specify both headers (expires and cache control) just | |
#in case there are old proxies in the way. | |
#http://stackoverflow.com/questions/5799906/what-s-the-difference-between-expires-and-cache-control-headers | |
#Add Gzip | |
<ifModule mod_gzip.c> | |
mod_gzip_on Yes | |
mod_gzip_dechunk Yes | |
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ | |
mod_gzip_item_include handler ^cgi-script$ | |
mod_gzip_item_include mime ^text/.* | |
mod_gzip_item_include mime ^application/x-javascript.* | |
mod_gzip_item_exclude mime ^image/.* | |
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* | |
</ifModule> | |
<ifmodule mod_deflate.c> | |
AddOutputFilterByType DEFLATE image/svg+xml | |
AddOutputFilterByType DEFLATE text/plain | |
AddOutputFilterByType DEFLATE text/html | |
AddOutputFilterByType DEFLATE text/xml | |
AddOutputFilterByType DEFLATE text/css | |
AddOutputFilterByType DEFLATE text/javascript | |
AddOutputFilterByType DEFLATE application/xml | |
AddOutputFilterByType DEFLATE application/xhtml+xml | |
AddOutputFilterByType DEFLATE application/rss+xml | |
AddOutputFilterByType DEFLATE application/javascript | |
AddOutputFilterByType DEFLATE application/x-javascript | |
AddOutputFilterByType DEFLATE application/x-font-ttf | |
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject | |
AddOutputFilterByType DEFLATE font/opentype font/ttf font/eot font/otf | |
</ifmodule> | |
#END Mod Deflate | |
# Mod PageSpeed | |
<IfModule pagespeed_module> | |
ModPagespeed on | |
ModPagespeedEnableFilters remove_comments,rewrite_javascript,rewrite_css,rewrite_images | |
ModPagespeedJpegRecompressionQuality -1 | |
</IfModule> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
To enforce https / SSL use: