Если у пользователя есть файл, кешированный в браузере, и они отправляют HTTP-запрос с заголовком If-Modified-Since
, есть ли способ автоматически обслуживать их ответ 304 Not Modified
с использованием .htaccess ?Возможно ли вернуть 304 без изменения .htaccess
1
A
ответ
3
Косвенным решение:
.htaccess:
RewriteCond %{HTTP:if-modified-since} .
RewriteRule . /not_modified.php [L]
not_modified.php:
header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified');
1
проверить следующие ссылки:
- http://httpd.apache.org/docs/2.1/caching.html
- http://www.chicagostyleseo.com/2010/04/googles-need-for-speed-use-cache-and-htaccess-to-speed-up-your-site/
- http://www.askapache.com/htaccess/apache-speed-last-modified.html
Обратите внимание, что из приведенной выше ссылке:
Если удалить последний -Modif ied и ETag, вы будете полностью устранить If-Modified-Since и If-None-Match запросы и их 304 Не измененные ответы, поэтому файл останется кешированным без проверки для обновлений до тех пор, пока заголовок Expires не укажет, что новый контент доступный!
Поправьте меня, если я ошибаюсь, но мне кажется, что просто нажав на кнопку " refresh 'в браузере вызывается запрос If-modified-since независимо от заголовка expires. – skibulk
@skibulk - Да, я думаю, что эта часть специфична для браузера. Я также думаю, что это упоминается в ссылках. – Cyclonecode
Я думал, что срок действия истек. Таким образом, браузер будет продолжать использовать кешированную версию до истечения срока ее действия, а затем после этого использовать функцию IfModifiedSince, чтобы предотвратить двойную загрузку, если она все еще не изменилась – Gerben