Created
June 28, 2012 03:52
-
-
Save benlilley/3008898 to your computer and use it in GitHub Desktop.
htaccess
This file contains hidden or 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
# turn on mod_rewrite | |
RewriteEngine On | |
RewriteBase / | |
# ensure our url always has www | |
RewriteCond %{http_host} ^blahblah.co.nz | |
RewriteRule ^(.*)$ http://www.blahblah.co.nz/$1 [R=301,L] | |
# make sure index.php is always removed from url | |
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php(/[^\s\?]+)? [NC] | |
RewriteRule ^ %1 [L,R=301] | |
# make sure we don't have a trailing slash unless it's a directory | |
RewriteCond %{REQUEST_FILENAME} !-d | |
RewriteRule ^(.+)/$ /$1 [L,R=301] | |
# make sure requests are routed through index.php but not in url and ensures EE act query strings aren't messed with | |
RewriteCond %{REQUEST_FILENAME} !-f | |
RewriteCond %{REQUEST_FILENAME} !-d | |
RewriteCond %{REQUEST_FILENAME} !-l | |
RewriteCond %{QUERY_STRING} !^ACT= | |
RewriteRule ^ index.php%{REQUEST_URI} [L,NC] | |
# Enable GZIP | |
<ifmodule mod_deflate.c> | |
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript | |
BrowserMatch ^Mozilla/4 gzip-only-text/html | |
BrowserMatch ^Mozilla/4\.0[678] no-gzip | |
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html | |
</ifmodule> | |
# Expires Headers - 2678400s = 31 days | |
<ifmodule mod_expires.c> | |
ExpiresActive On | |
ExpiresDefault "access plus 1 seconds" | |
ExpiresByType text/html "access plus 7200 seconds" | |
ExpiresByType image/gif "access plus 2678400 seconds" | |
ExpiresByType image/jpeg "access plus 2678400 seconds" | |
ExpiresByType image/png "access plus 2678400 seconds" | |
ExpiresByType text/css "access plus 518400 seconds" | |
ExpiresByType text/javascript "access plus 2678400 seconds" | |
ExpiresByType application/x-javascript "access plus 2678400 seconds" | |
</ifmodule> | |
# Cache Headers | |
<ifmodule mod_headers.c> | |
# Cache specified files for 31 days | |
<filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$"> | |
Header set Cache-Control "max-age=2678400, public" | |
</filesmatch> | |
# Cache HTML files for a couple hours | |
<filesmatch "\.(html|htm)$"> | |
Header set Cache-Control "max-age=7200, private, must-revalidate" | |
</filesmatch> | |
# Cache PDFs for a day | |
<filesmatch "\.(pdf)$"> | |
Header set Cache-Control "max-age=86400, public" | |
</filesmatch> | |
# Cache Javascripts for 31 days | |
<filesmatch "\.(js)$"> | |
Header set Cache-Control "max-age=2678400, private" | |
</filesmatch> | |
</ifmodule> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment