qq78707 发表于 2017-1-7 10:51:24

apache mod_expires or mod_headers?

  1: 对比mod_expires 和mod_headers
  You probably just want to use mod_expires, as this allow for sending of both Cache-Control header and Expires headers automatically and can allow you to specify by both access time and file modification time. It also allows you to set different defaults by file type.
  Using mod_expires you could set the default expiry using the following directive:

ExpiresDefault "access plus 2 days"

  Of course mod_headers is a much more general module that allows you to do some of the same stuff, but generally used more for creating custom headers or manage multiple (possibly conflicting) headers.
  原文:http://stackoverflow.com/questions/12164684/mod-expires-or-mod-headers
  2:一个比较全的对这个两个cache方式的配置文件。

# ##############################################################################
# # MEDIA TYPES AND CHARACTER ENCODINGS                                        #
# ##############################################################################
# ------------------------------------------------------------------------------
# | Media types                                                                |
# ------------------------------------------------------------------------------
# Serve resources with the proper media types (formerly known as MIME types).
# http://www.iana.org/assignments/media-types/media-types.xhtml
<IfModule mod_mime.c>
# Audio
AddType audio/mp4                                 f4a f4b m4a
AddType audio/ogg                                 oga ogg opus
# Data interchange
AddType application/json                            json map topojson
AddType application/ld+json                         jsonld
AddType application/vnd.geo+json                  geojson
# JavaScript
# Normalize to standard type.
# http://tools.ietf.org/html/rfc4329#section-7.2
AddType application/javascript                      js
# Manifest files
# If you are providing a web application manifest file (see the
# specification: http://w3c.github.io/manifest/), it is recommended
# that you serve it with the `application/manifest+json` media type.
#
# Because the web application manifest file doesn't have its own
# unique file extension, you can set its media type either by matching:
#
# 1) the exact location of the file (this can be done using a directive
#    such as `<Location>`, but it will NOT work in the `.htaccess` file,
#    so you will have to do it in the main server configuration file or
#    inside of a `<VirtualHost>` container)
#
#    e.g.:
#
#       <Location "/.well-known/manifest.json">
#         AddType application/manifest+json               json
#       </Location>
#
# 2) the filename (this can be problematic as you will need to ensure
#    that you don't have any other file with the same name as the one
#    you gave to your web application manifest file)
#
#    e.g.:
#
#       <Files "manifest.json">
#         AddType application/manifest+json               json
#       </Files>
AddType application/x-web-app-manifest+json         webapp
AddType text/cache-manifest                         appcache manifest
# Video
AddType video/mp4                                 f4v f4p m4v mp4
AddType video/ogg                                 ogv
AddType video/webm                                  webm
AddType video/x-flv                                 flv
# Web fonts
AddType application/font-woff                     woff
AddType application/font-woff2                      woff2
AddType application/vnd.ms-fontobject               eot
# Browsers usually ignore the font media types and simply sniff
# the bytes to figure out the font type.
# http://mimesniff.spec.whatwg.org/#matching-a-font-type-pattern
# Chrome however, shows a warning if any other media types are used
# for the following two font types.
AddType application/x-font-ttf                      ttc ttf
AddType font/opentype                               otf
AddType image/svg+xml                               svg svgz
# Other
AddType application/octet-stream                  safariextz
AddType application/x-chrome-extension            crx
AddType application/x-opera-extension               oex
AddType application/x-xpinstall                     xpi
AddType application/xml                           atom rdf rss xml
AddType image/webp                                  webp
AddType image/x-icon                              cur ico
AddType text/vtt                                    vtt
AddType text/x-component                            htc
AddType text/x-vcard                              vcf
</IfModule>
# ------------------------------------------------------------------------------
# | Reducing MIME type security risks                                          |
# ------------------------------------------------------------------------------
# Prevent some browsers from MIME-sniffing the response.
# This reduces exposure to drive-by download attacks and cross-origin data
# leaks, and should be left uncommented, especially if the web server is
# serving user-uploaded content or content that could potentially be treated
# as executable by the browser.
# http://www.slideshare.net/hasegawayosuke/owasp-hasegawa
# http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx
# http://msdn.microsoft.com/en-us/library/ie/gg622941.aspx
# http://mimesniff.spec.whatwg.org/
<IfModule mod_headers.c>
Header set X-Content-Type-Options "nosniff"
</IfModule>

# ------------------------------------------------------------------------------
# | ETags                                                                      |
# ------------------------------------------------------------------------------
# Remove `ETags` as resources are sent with far-future expires headers.
# https://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
# ------------------------------------------------------------------------------
# | Expires headers                                                            |
# ------------------------------------------------------------------------------
# Serve resources with far-future expires headers.
# IMPORTANT: If you don't control versioning with filename-based cache
# busting, consider lowering the cache times to something like one week.
<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/vnd.geo+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/manifest+json             "access plus 1 year"
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/font-woff2                "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>


摘选自: http://stackoverflow.com/questions/9933012/how-to-use-mod-headers-and-mod-expires-to-cache

  相关资料: http://www.askapache.com/htaccess/apache-speed-compression.html
页: [1]
查看完整版本: apache mod_expires or mod_headers?