113 lines
4.3 KiB
Plaintext
113 lines
4.3 KiB
Plaintext
|
# CHARSET
|
||
|
AddDefaultCharset utf-8
|
||
|
|
||
|
|
||
|
# MIME TYPES
|
||
|
AddType application/font-woff .woff
|
||
|
AddType application/javascript .js
|
||
|
|
||
|
|
||
|
# BEGIN Compression
|
||
|
<IfModule mod_deflate.c>
|
||
|
|
||
|
# Force compression for mangled headers.
|
||
|
# http://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/ld+json \
|
||
|
application/rss+xml \
|
||
|
application/vnd.ms-fontobject \
|
||
|
application/x-font-ttf \
|
||
|
application/x-web-app-manifest+json \
|
||
|
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>
|
||
|
# END Compression
|
||
|
|
||
|
|
||
|
# Remove `ETags` as resources are sent with far-future expires headers.
|
||
|
# http://developer.yahoo.com/performance/rules.html#etags.
|
||
|
|
||
|
# `FileETag None` doesn't work in all cases.
|
||
|
<IfModule mod_headers.c>
|
||
|
Header unset ETag
|
||
|
</IfModule>
|
||
|
|
||
|
FileETag None
|
||
|
# END Remove `ETags`
|
||
|
|
||
|
|
||
|
# Expires headers
|
||
|
<IfModule mod_expires.c>
|
||
|
|
||
|
ExpiresActive on
|
||
|
ExpiresDefault "access plus 1 month"
|
||
|
|
||
|
# CSS
|
||
|
ExpiresByType text/css "access plus 1 year"
|
||
|
|
||
|
# Data interchange
|
||
|
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"
|
||
|
|
||
|
# Favicon (cannot be renamed!) and cursor images
|
||
|
ExpiresByType image/x-icon "access plus 1 week"
|
||
|
|
||
|
# HTML components (HTCs)
|
||
|
ExpiresByType text/x-component "access plus 1 month"
|
||
|
|
||
|
# HTML
|
||
|
ExpiresByType text/html "access plus 0 seconds"
|
||
|
|
||
|
# JavaScript
|
||
|
ExpiresByType application/javascript "access plus 1 year"
|
||
|
|
||
|
# Manifest files
|
||
|
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
|
||
|
ExpiresByType text/cache-manifest "access plus 0 seconds"
|
||
|
|
||
|
# Media
|
||
|
ExpiresByType audio/ogg "access plus 1 month"
|
||
|
ExpiresByType image/gif "access plus 1 month"
|
||
|
ExpiresByType image/jpeg "access plus 1 month"
|
||
|
ExpiresByType image/png "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"
|
||
|
|
||
|
# Web feeds
|
||
|
ExpiresByType application/atom+xml "access plus 1 hour"
|
||
|
ExpiresByType application/rss+xml "access plus 1 hour"
|
||
|
|
||
|
# Web fonts
|
||
|
ExpiresByType application/font-woff "access plus 1 month"
|
||
|
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
|
||
|
ExpiresByType application/x-font-ttf "access plus 1 month"
|
||
|
ExpiresByType font/opentype "access plus 1 month"
|
||
|
ExpiresByType image/svg+xml "access plus 1 month"
|
||
|
|
||
|
</IfModule>
|
||
|
# END Expires headers
|