APACHE 2 - Cache control configuration

The goal of this change is to add the following line(s) into the headers of your file(s):

Cache-Control: public, max-age=31557600

This change allows us to cache your files for the above specified time (in seconds)

How to do that?

1) Enable mod_headers module (it is usually disabled by default). In Debian and Ubuntu Linux distributions use the following command:

a2enmod headers

For Linux distributions or other Unix systems without additional module handling infrastructure add the following line to web servers httpd.conf:

LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so


2) Then we need to tell the web server to send specific headers for those specific situations.

Open your virtual server configuration:

vi /etc/apache2/sites-available/


For example: If you want to cache all your .pdf and .jpg files for a year, add the following code into your configuration.


<FilesMatch "\.(pdf|jpg)$">
Header set Cache-Control max-age=31557600


Please, make sure that you don't have any duplicate headers before we proceed to the last step.


3) For the configuration to take effect restart your web server with following command:

/etc/init.d/apache2 restart