Last active
September 2, 2016 14:56
-
-
Save Antoinebr/fe1e43abe41fcab865a7cb65e850ad6d to your computer and use it in GitHub Desktop.
htaccess speedup !
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
| # Use UTF-8 encoding for anything served text/plain or text/html | |
| AddDefaultCharset UTF-8 | |
| # Force UTF-8 for a number of file formats | |
| <IfModule mod_mime.c> | |
| AddCharset UTF-8 .atom .css .js .json .rss .vtt .xml | |
| </IfModule> | |
| # FileETag None is not enough for every server. | |
| <IfModule mod_headers.c> | |
| Header unset ETag | |
| </IfModule> | |
| # Since we're sending far-future expires, we don't need ETags for static content. | |
| # developer.yahoo.com/performance/rules.html#etags | |
| FileETag None | |
| <IfModule mod_alias.c> | |
| <FilesMatch "\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml)$"> | |
| <IfModule mod_headers.c> | |
| Header set X-Powered-By "UMS " | |
| Header unset Pragma | |
| Header append Cache-Control "public" | |
| Header unset Last-Modified | |
| </IfModule> | |
| </FilesMatch> | |
| <FilesMatch "\.(css|htc|js|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$"> | |
| <IfModule mod_headers.c> | |
| Header unset Pragma | |
| Header append Cache-Control "public" | |
| </IfModule> | |
| </FilesMatch> | |
| </IfModule> | |
| # Expires headers (for better cache control) | |
| <IfModule mod_expires.c> | |
| ExpiresActive on | |
| # Perhaps better to whitelist expires rules? Perhaps. | |
| ExpiresDefault "access plus 1 month" | |
| # cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5) | |
| ExpiresByType text/cache-manifest "access plus 0 seconds" | |
| # Your document html | |
| ExpiresByType text/html "access plus 0 seconds" | |
| # Data | |
| ExpiresByType text/xml "access plus 0 seconds" | |
| ExpiresByType application/xml "access plus 0 seconds" | |
| ExpiresByType application/json "access plus 0 seconds" | |
| # Feed | |
| ExpiresByType application/rss+xml "access plus 1 hour" | |
| ExpiresByType application/atom+xml "access plus 1 hour" | |
| # Favicon (cannot be renamed) | |
| ExpiresByType image/x-icon "access plus 1 week" | |
| # Media: images, video, audio | |
| ExpiresByType image/gif "access plus 1 month" | |
| ExpiresByType image/png "access plus 1 month" | |
| ExpiresByType image/jpeg "access plus 1 month" | |
| ExpiresByType video/ogg "access plus 1 month" | |
| ExpiresByType audio/ogg "access plus 1 month" | |
| ExpiresByType video/mp4 "access plus 1 month" | |
| ExpiresByType video/webm "access plus 1 month" | |
| # HTC files (css3pie) | |
| ExpiresByType text/x-component "access plus 1 month" | |
| # Webfonts | |
| ExpiresByType application/x-font-ttf "access plus 1 month" | |
| ExpiresByType font/opentype "access plus 1 month" | |
| ExpiresByType application/x-font-woff "access plus 1 month" | |
| ExpiresByType image/svg+xml "access plus 1 month" | |
| ExpiresByType application/vnd.ms-fontobject "access plus 1 month" | |
| # CSS and JavaScript | |
| ExpiresByType text/css "access plus 1 year" | |
| ExpiresByType application/javascript "access plus 1 year" | |
| </IfModule> | |
| # Gzip compression | |
| <IfModule mod_deflate.c> | |
| # Active compression | |
| SetOutputFilter DEFLATE | |
| # Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/ | |
| <IfModule mod_setenvif.c> | |
| <IfModule mod_headers.c> | |
| SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding | |
| RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding | |
| </IfModule> | |
| </IfModule> | |
| # Compress all output labeled with one of the following MIME-types | |
| <IfModule mod_filter.c> | |
| AddOutputFilterByType DEFLATE application/atom+xml \ | |
| application/javascript \ | |
| application/json \ | |
| application/rss+xml \ | |
| application/vnd.ms-fontobject \ | |
| application/x-font-ttf \ | |
| application/xhtml+xml \ | |
| application/xml \ | |
| font/opentype \ | |
| image/svg+xml \ | |
| image/x-icon \ | |
| text/css \ | |
| text/html \ | |
| text/plain \ | |
| text/x-component \ | |
| text/xml | |
| </IfModule> | |
| <IfModule mod_headers.c> | |
| Header append Vary User-Agent env=!dont-vary | |
| </IfModule> | |
| </IfModule> | |
| #Activation DEFLATE GZIP | |
| SetOutputFilter DEFLATE | |
| SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|ico|png)$ \ no-gzip dont-vary | |
| SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ \no-gzip dont-vary | |
| SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary | |
| BrowserMatch ^Mozilla/4 gzip-only-text/html | |
| BrowserMatch ^Mozilla/4\.0[678] no-gzip | |
| BrowserMatch \bMSIE !no-gzip !gzip-only-text/html | |
| #Activation DEFLATE GZIP | |
| #Cache navigateur | |
| <IfModule mod_expires.c> | |
| ExpiresActive On | |
| ExpiresByType image/jpg "access 1 year" | |
| ExpiresByType image/jpeg "access 1 year" | |
| ExpiresByType image/gif "access 1 year" | |
| ExpiresByType image/png "access 1 year" | |
| ExpiresByType text/css "access 1 month" | |
| ExpiresByType text/html "access 1 month" | |
| ExpiresByType application/pdf "access 1 month" | |
| ExpiresByType text/x-javascript "access 1 month" | |
| ExpiresByType application/x-shockwave-flash "access 1 month" | |
| ExpiresByType image/x-icon "access 1 year" | |
| ExpiresDefault "access 1 month" | |
| </IfModule> | |
| #Cache navigateur | |
| # first one is to deny access to indexes | |
| Options -Indexes | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment