Мне нужно отключить кеш для определенных URL-адресов.
Я начал использовать эти директивы в файле .htaccess, и они работают:
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
Эти директивы работают для любых URL-адресов веб-сайта.
Поскольку мне нужно, чтобы эта директива работала только для определенных URL-адресов, я переместил их в файл виртуального хоста, используя LocationMatch
директива:
<VirtualHost *:80>
DocumentRoot ...
ServerName ...
<Directory ...>
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
AllowOverride All
</Directory>
<LocationMatch "/compile">
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</LocationMatch>
</VirtualHost>
Этот код больше не работает.
Регулярное выражение работает. Если я использую что-то вроде этого:
<LocationMatch "/compile">
Deny from all
</LocationMatch>
Apache не позволяет мне получить доступ к странице. Кажется, что директива заголовков не работает.