Skip to content

Instantly share code, notes, and snippets.

@WillSquire
Last active April 8, 2024 13:10
Show Gist options
  • Save WillSquire/fc711fa2dfa54f07aa4b to your computer and use it in GitHub Desktop.
Save WillSquire/fc711fa2dfa54f07aa4b to your computer and use it in GitHub Desktop.
Install and configure mod_expire on FreeBSD

Install and configure mod_expire on FreeBSD

Open Apache config file:

sudo ee /usr/local/etc/apache24/httpd.conf

Ensure the following is uncommented, then save and exit the file (remove # if present at the start of the line):

LoadModule expires_module libexec/apache24/mod_expires.so

Create a mod_expire config file (note apache24 may vary depending on the version of Apache installed):

sudo ee /usr/local/etc/apache24/Includes/mod_expire.conf

Add the configuration settings to the file, then save and exit (note: change the cache time for each type of file to what is needed):

<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresDefault                                      "access plus 1 month"
  # CSS
  ExpiresByType text/css                              "access plus 1 year"
  # Data interchange
  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"
  # Favicon (cannot be renamed!) and cursor images
  ExpiresByType image/vnd.microsoft.icon              "access plus 1 week"
  ExpiresByType image/x-icon                          "access plus 1 week"
  # HTML
  ExpiresByType text/html                             "access plus 0 seconds"
  # JavaScript
  ExpiresByType application/javascript                "access plus 1 year"
  ExpiresByType application/x-javascript              "access plus 1 year"
  ExpiresByType text/javascript                       "access plus 1 year"
  # Manifest files
  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"
  # Media files
  ExpiresByType audio/ogg                             "access plus 1 month"
  ExpiresByType image/bmp                             "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 image/svg+xml                         "access plus 1 month"
  ExpiresByType image/webp                            "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 fonts
    # Embedded OpenType (EOT)
    ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
    ExpiresByType font/eot                              "access plus 1 month"
    # OpenType
    ExpiresByType font/opentype                         "access plus 1 month"
    # TrueType
    ExpiresByType application/x-font-ttf                "access plus 1 month"
    # Web Open Font Format (WOFF) 1.0
    ExpiresByType application/font-woff                 "access plus 1 month"
    ExpiresByType application/x-font-woff               "access plus 1 month"
    ExpiresByType font/woff                             "access plus 1 month"
    # Web Open Font Format (WOFF) 2.0
    ExpiresByType application/font-woff2                "access plus 1 month"
  # Other
  ExpiresByType text/x-cross-domain-policy            "access plus 1 week"
</IfModule>

Restart Apache:

sudo apachectl graceful

###References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment