Improve caching
This commit is contained in:
parent
2924abc364
commit
6ddbf0a7db
1 changed files with 18 additions and 177 deletions
177
.htaccess
177
.htaccess
|
@ -1,3 +1,6 @@
|
|||
#
|
||||
# Rewrite
|
||||
#
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine On
|
||||
|
||||
|
@ -14,174 +17,12 @@
|
|||
RewriteRule ^([a-z\-]+)$ /?page=$1 [QSA,L]
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_deflate.c>
|
||||
# Insert filters / compress text, html, javascript, css, xml:
|
||||
# mod_deflate can be used for Apache v2 and later and is the recommended GZip mechanism to use
|
||||
AddOutputFilterByType DEFLATE text/plain
|
||||
AddOutputFilterByType DEFLATE text/javascript
|
||||
AddOutputFilterByType DEFLATE text/html
|
||||
AddOutputFilterByType DEFLATE text/xml
|
||||
AddOutputFilterByType DEFLATE text/css
|
||||
AddOutputFilterByType DEFLATE text/vtt
|
||||
AddOutputFilterByType DEFLATE text/x-component
|
||||
AddOutputFilterByType DEFLATE application/xml
|
||||
AddOutputFilterByType DEFLATE application/xhtml+xml
|
||||
AddOutputFilterByType DEFLATE application/rss+xml
|
||||
AddOutputFilterByType DEFLATE application/js
|
||||
AddOutputFilterByType DEFLATE application/javascript
|
||||
AddOutputFilterByType DEFLATE application/x-javascript
|
||||
AddOutputFilterByType DEFLATE application/x-httpd-php
|
||||
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
|
||||
AddOutputFilterByType DEFLATE application/atom+xml
|
||||
AddOutputFilterByType DEFLATE application/json
|
||||
AddOutputFilterByType DEFLATE application/ld+json
|
||||
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
|
||||
AddOutputFilterByType DEFLATE application/x-font-ttf
|
||||
AddOutputFilterByType DEFLATE application/font-sfnt
|
||||
AddOutputFilterByType DEFLATE application/x-web-app-manifest+json
|
||||
AddOutputFilterByType DEFLATE font/opentype
|
||||
AddOutputFilterByType DEFLATE font/otf
|
||||
AddOutputFilterByType DEFLATE font/ttf
|
||||
AddOutputFilterByType DEFLATE font/sfnt
|
||||
AddOutputFilterByType DEFLATE image/svg+xml
|
||||
AddOutputFilterByType DEFLATE image/x-icon
|
||||
|
||||
# Exception: Images
|
||||
SetEnvIfNoCase REQUEST_URI \.(?:gif|jpg|jpeg|png)$ no-gzip dont-vary
|
||||
|
||||
# Drop problematic browsers
|
||||
BrowserMatch ^Mozilla/4 gzip-only-text/html
|
||||
BrowserMatch ^Mozilla/4\.0[678] no-gzip
|
||||
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
|
||||
|
||||
# Make sure proxies don't deliver the wrong content
|
||||
<IfModule mod_headers.c>
|
||||
Header append Vary User-Agent env=!dont-vary
|
||||
</IfModule>
|
||||
|
||||
</IfModule>
|
||||
|
||||
# mod_gzip is an external extension and last updated 2015, so
|
||||
# if available please use mod_deflate instead
|
||||
# If you are stuck on Apache v1.3 you can use mod_zip to enable Gzip
|
||||
# as mod_deflate is available for Apache v2 or later only.
|
||||
<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>
|
||||
|
||||
|
||||
## EXPIRES CACHING ##
|
||||
<IfModule mod_expires.c>
|
||||
ExpiresActive On
|
||||
ExpiresDefault "access plus 1 week"
|
||||
|
||||
ExpiresByType text/css "access plus 1 month"
|
||||
|
||||
ExpiresByType application/atom+xml "access plus 1 hour"
|
||||
ExpiresByType application/rdf+xml "access plus 1 hour"
|
||||
ExpiresByType application/rss+xml "access plus 1 hour"
|
||||
|
||||
ExpiresByType application/json "access plus 0 seconds"
|
||||
ExpiresByType application/ld+json "access plus 0 seconds"
|
||||
ExpiresByType application/schema+json "access plus 0 seconds"
|
||||
ExpiresByType application/vnd.geo+json "access plus 0 seconds"
|
||||
ExpiresByType application/xml "access plus 0 seconds"
|
||||
ExpiresByType text/xml "access plus 0 seconds"
|
||||
|
||||
ExpiresByType image/x-icon "access plus 1 month"
|
||||
ExpiresByType image/vnd.microsoft.icon "access plus 1 month"
|
||||
|
||||
ExpiresByType text/html "access plus 1 minute"
|
||||
|
||||
ExpiresByType text/javascript "access plus 1 month"
|
||||
ExpiresByType text/x-javascript "access plus 1 month"
|
||||
ExpiresByType application/javascript "access plus 1 months"
|
||||
ExpiresByType application/x-javascript "access plus 1 months"
|
||||
|
||||
ExpiresByType image/jpg "access plus 1 month"
|
||||
ExpiresByType image/jpeg "access plus 1 month"
|
||||
ExpiresByType image/gif "access plus 1 month"
|
||||
ExpiresByType image/png "access plus 1 month"
|
||||
ExpiresByType image/svg+xml "access plus 1 month"
|
||||
ExpiresByType image/bmp "access plus 1 month"
|
||||
ExpiresByType image/webp "access plus 1 month"
|
||||
|
||||
ExpiresByType audio/ogg "access plus 1 month"
|
||||
|
||||
ExpiresByType video/mp4 "access plus 1 month"
|
||||
ExpiresByType video/ogg "access plus 1 month"
|
||||
ExpiresByType video/webm "access plus 1 month"
|
||||
|
||||
ExpiresByType text/plain "access plus 1 month"
|
||||
ExpiresByType text/x-component "access plus 1 month"
|
||||
|
||||
ExpiresByType application/manifest+json "access plus 1 week"
|
||||
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
|
||||
ExpiresByType text/cache-manifest "access plus 0 seconds"
|
||||
|
||||
ExpiresByType application/pdf "access plus 1 month"
|
||||
|
||||
ExpiresByType application/x-shockwave-flash "access plus 1 month"
|
||||
|
||||
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
|
||||
ExpiresByType font/eot "access plus 1 month"
|
||||
ExpiresByType font/opentype "access plus 1 month"
|
||||
ExpiresByType application/x-font-ttf "access plus 1 month"
|
||||
ExpiresByType application/font-woff "access plus 1 month"
|
||||
ExpiresByType application/font-woff2 "access plus 1 month"
|
||||
ExpiresByType application/x-font-woff "access plus 1 month"
|
||||
ExpiresByType font/woff "access plus 1 month"
|
||||
|
||||
</IfModule>
|
||||
## EXPIRES CACHING ##
|
||||
|
||||
|
||||
#Alternative caching using Apache's "mod_headers", if it's installed.
|
||||
#Caching of common files - ENABLED
|
||||
#
|
||||
# Headers
|
||||
#
|
||||
<IfModule mod_headers.c>
|
||||
|
||||
# 1 Month
|
||||
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
|
||||
Header set Cache-Control "max-age=2592000, public"
|
||||
</FilesMatch>
|
||||
|
||||
# 2 DAYS
|
||||
<FilesMatch "\.(xml|txt)$">
|
||||
Header set Cache-Control "max-age=172800, public, must-revalidate"
|
||||
</FilesMatch>
|
||||
|
||||
# 2 HOURS
|
||||
<FilesMatch "\.(html|htm)$">
|
||||
Header set Cache-Control "max-age=7200, must-revalidate"
|
||||
</FilesMatch>
|
||||
|
||||
</IfModule>
|
||||
|
||||
|
||||
<IfModule mod_headers.c>
|
||||
<FilesMatch "\.(js|css|xml|gz|html|ttf)$">
|
||||
Header append Vary: Accept-Encoding
|
||||
# 1 Year
|
||||
<FilesMatch "\.(woff2|js|css|png|svg|jpg)$">
|
||||
Header set Cache-Control "public, max-age=31536000, no-transform"
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
|
||||
# Set Keep Alive Header
|
||||
# This *just* sets the header - maybe your hoster is not allowing this feature
|
||||
# Please check if it is working with tools like http://www.webpagetest.org
|
||||
<IfModule mod_headers.c>
|
||||
Header set Connection keep-alive
|
||||
</IfModule>
|
||||
|
||||
# If your server don't support ETags deactivate with "None" (and remove header)
|
||||
<IfModule mod_expires.c>
|
||||
<IfModule mod_headers.c>
|
||||
Header unset ETag
|
||||
</IfModule>
|
||||
FileETag None
|
||||
</IfModule>
|
||||
|
|
Loading…
Reference in a new issue