### BEGIN WP Roids - DO NOT REMOVE THIS LINE

# Expires headers for older browsers

<IfModule mod_expires.c>
	ExpiresActive On
	# IMAGES & ALIKE
	ExpiresByType application/pdf "access plus 30 days"
	ExpiresByType image/bmp "access plus 30 days"
	ExpiresByType image/gif "access plus 30 days"
	ExpiresByType image/png "access plus 30 days"
	ExpiresByType image/jpg "access plus 30 days"
	ExpiresByType image/jpeg "access plus 30 days"
	ExpiresByType image/svg+xml "access plus 30 days"
	ExpiresByType image/vnd.microsoft.icon "access plus 30 days"
	ExpiresByType image/x-icon "access plus 30 days"
	ExpiresByType image/webp "access plus 30 days"
	# FONTS
	ExpiresByType application/font-opentype "access plus 30 days"
	ExpiresByType application/font-sfnt "access plus 30 days"
	ExpiresByType application/font-woff "access plus 30 days"
	ExpiresByType application/font-woff2 "access plus 30 days"
	ExpiresByType application/vnd.ms-fontobject "access plus 30 days"
	ExpiresByType application/x-font-ttf "access plus 30 days"
	ExpiresByType application/x-font-opentype "access plus 30 days"
	# AV
	ExpiresByType audio/mp3 "access plus 30 days"
	ExpiresByType audio/ogg "access plus 30 days"
	ExpiresByType audio/webm "access plus 30 days"
	ExpiresByType video/3gpp "access plus 30 days"
	ExpiresByType video/MP2T "access plus 30 days"
	ExpiresByType video/mp4 "access plus 30 days"
	ExpiresByType video/ogg "access plus 30 days"
	ExpiresByType video/quicktime "access plus 30 days"
	ExpiresByType video/webm "access plus 30 days"
	ExpiresByType video/x-flv "access plus 30 days"
	ExpiresByType video/x-msvideo "access plus 30 days"
	ExpiresByType video/x-ms-wmv "access plus 30 days"
	# CSS & JS
	ExpiresByType text/css "access plus 30 days"
	ExpiresByType application/javascript "access plus 30 days"
	# HTML
	ExpiresByType text/html "access plus 5 minutes"
	# DO NOT CACHE
	ExpiresByType application/json "access plus 0 seconds"
	ExpiresByType application/ld+json "access plus 0 seconds"
	ExpiresByType application/xml "access plus 0 seconds"
	ExpiresByType text/xml "access plus 0 seconds"
	# FALLBACK
	ExpiresDefault "access plus 1 hour"
</IfModule>

# Headers for newer browsers

<IfModule mod_headers.c>
	Header unset ETag
	FileETag None
	Header set Connection keep-alive
	# 30 days
	<FilesMatch ".(bmp|ico|pdf|flv|jpg|jpeg|png|gif|js|css|gz|eot|opentype|otf|ttf|webp|woff|woff2)$">
		Header set Cache-Control "max-age=2592000, public"
	</FilesMatch>
	# 1 DAY
	<FilesMatch ".(xml|txt|json)$">
		Header set Cache-Control "max-age=86400, public, must-revalidate"
	</FilesMatch>
	# 1 HOUR
	<FilesMatch ".(html|htm)$">
		Header set Cache-Control "max-age=300, public"
	</FilesMatch>
	<FilesMatch "\.(js|css|xml|json|gz|html|htm)$">
		Header append Vary: Accept-Encoding
	</FilesMatch>
	Header append Vary: User-Agent
</IfModule>

# Enable GZIP compression

<IfModule mod_deflate.c>
	AddOutputFilterByType DEFLATE application/atom+xml
	AddOutputFilterByType DEFLATE application/javascript
	AddOutputFilterByType DEFLATE application/json
	AddOutputFilterByType DEFLATE application/ld+json
	AddOutputFilterByType DEFLATE application/manifest+json
	AddOutputFilterByType DEFLATE application/rdf+xml
	AddOutputFilterByType DEFLATE application/rss+xml
	AddOutputFilterByType DEFLATE application/schema+json
	AddOutputFilterByType DEFLATE application/vnd.geo+json
	AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
	AddOutputFilterByType DEFLATE application/x-font
	AddOutputFilterByType DEFLATE application/x-font-opentype
	AddOutputFilterByType DEFLATE application/x-font-otf
	AddOutputFilterByType DEFLATE application/x-font-truetype
	AddOutputFilterByType DEFLATE application/x-font-ttf
	AddOutputFilterByType DEFLATE application/x-javascript
	AddOutputFilterByType DEFLATE application/xhtml+xml
	AddOutputFilterByType DEFLATE application/xml
	AddOutputFilterByType DEFLATE application/x-mpegURL
	AddOutputFilterByType DEFLATE application/x-web-app-manifest+json
	AddOutputFilterByType DEFLATE audio/mp3
	AddOutputFilterByType DEFLATE audio/ogg
	AddOutputFilterByType DEFLATE audio/webm
	AddOutputFilterByType DEFLATE font/eot
	AddOutputFilterByType DEFLATE font/opentype
	AddOutputFilterByType DEFLATE font/otf
	AddOutputFilterByType DEFLATE font/ttf
	AddOutputFilterByType DEFLATE font/woff
	AddOutputFilterByType DEFLATE font/woff2
	AddOutputFilterByType DEFLATE image/bmp
	AddOutputFilterByType DEFLATE image/gif
	AddOutputFilterByType DEFLATE image/jpeg
	AddOutputFilterByType DEFLATE image/jpg
	AddOutputFilterByType DEFLATE image/png
	AddOutputFilterByType DEFLATE image/svg+xml
	AddOutputFilterByType DEFLATE image/vnd.microsoft.icon
	AddOutputFilterByType DEFLATE image/webp
	AddOutputFilterByType DEFLATE image/x-icon
	AddOutputFilterByType DEFLATE text/cache-manifest
	AddOutputFilterByType DEFLATE text/css
	AddOutputFilterByType DEFLATE text/html
	AddOutputFilterByType DEFLATE text/plain
	AddOutputFilterByType DEFLATE text/vcard
	AddOutputFilterByType DEFLATE text/vnd.rim.location.xloc
	AddOutputFilterByType DEFLATE text/vtt
	AddOutputFilterByType DEFLATE text/x-component
	AddOutputFilterByType DEFLATE text/x-cross-domain-policy
	AddOutputFilterByType DEFLATE text/xml
	AddOutputFilterByType DEFLATE video/3gpp
	AddOutputFilterByType DEFLATE video/MP2T
	AddOutputFilterByType DEFLATE video/mp4
	AddOutputFilterByType DEFLATE video/ogg
	AddOutputFilterByType DEFLATE video/quicktime
	AddOutputFilterByType DEFLATE video/webm
	AddOutputFilterByType DEFLATE video/x-flv
	AddOutputFilterByType DEFLATE video/x-msvideo
	AddOutputFilterByType DEFLATE video/x-ms-wmv
</IfModule>

## WP Roids rewrite rules

<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteBase [[WP_ROIDS_REWRITE_BASE]]/
	AddDefaultCharset UTF-8

	# Prevent hotlinking of images
	
	RewriteCond %{HTTP_REFERER} !^$
	RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?[[DOMAIN_NAME]] [NC]
	RewriteRule \.(bmp|gif|ico|jpg|jpeg|png|svg|webp)$ – [NC,F,L]
	
	# Serve cached images
	
	RewriteCond %{DOCUMENT_ROOT}/[[WP_ROIDS_FULL_IMAGES_CACHE]]/$1 -f [or]
	RewriteCond [[WP_ROIDS_ALT_FULL_IMAGES_CACHE]]/$1 -f
	RewriteRule /([^/]*\.(bmp|gif|ico|jpg|jpeg|png|svg|webp))$ "[[WP_ROIDS_IMAGES_CACHE]]/$1" [L]

	# serve cached HTML file
	
	RewriteCond %{REQUEST_URI} !^.*[^/]$
	RewriteCond %{REQUEST_URI} !^.*//.*$
	RewriteCond %{REQUEST_METHOD} !POST
	RewriteCond %{QUERY_STRING} !.*=.*
	RewriteCond %{HTTP:Cookie} !^.*(comment_author|wordpress_logged_in|postpass).*$
	RewriteCond %{DOCUMENT_ROOT}/[[WP_ROIDS_FULL_POSTS_CACHE]]/$1/index.html -f [or]
	RewriteCond [[WP_ROIDS_ALT_FULL_POSTS_CACHE]]/$1/index.html -f
	RewriteRule ^(.*) "[[WP_ROIDS_POSTS_CACHE]]/$1/index.html" [L]
</IfModule>

### END WP Roids - DO NOT REMOVE THIS LINE