Смотрите на VIPRE sunbeltsoftware.com с их новой версией VIPRE Premium. Это теперь включает Великий китайский файрвол с программой AV. Получите Домашнюю версию, и можно по закону установить на любом количестве компьютеров, которые находятся под контролем NP. Я использовал их продукт в течение приблизительно 6 лет, и это - лучшая версия, и с лицензией пакета семейства мне установили его на всех 14 из моих ПК в моей домашней сети. Брандмауэр может быть установлен на простой или расширенный режим (расширенный режим, Вы обучаете его со временем, и он помнит, какие сайты, приложения, и т.д. Вы авторизовали для выполнения). Это находит проблемы с системами, которые заявляют McAfee и AVG, прекрасны, и они обновляют свои конфигурационные файлы (AV) по крайней мере один раз в день. Приложение не является пожирателем ресурсов ни один в Вашей системе в отличие от некоторых из них. Можно даже установить полностью рабочую копию и использовать ее в течение 15 дней, просто быть уверены, что никакая другая программа AV не работает, или она могла замедлить систему фактором 50% или лучше.
Есть способ сделать это, но не с помощью mod_expires. Вместо этого вы должны установить переменную среды с помощью mod_rewrite, а затем условно добавить правильные заголовки кеширования с помощью mod_headers, как описано в Марк С. Колич: Установите заголовки Cache-Control и Expires при перенаправлении с помощью mod_rewrite .
Итак, мое окончательное решение выглядит так:
RewriteRule ... [last,redirect=301,env=longexpiry:1]
RewriteRule ... [last,redirect=302,env=nocache:1]
Header always set Cache-Control "no-store, no-cache, must-revalidate" env=nocache
Header always set Cache-Control "max-age=86400" env=longexpiry
Убедитесь, что у вас нет срока действия по умолчанию, установленного mod_expires, иначе вы получите дублирующиеся заголовки.
Для этого вам необходимо создать другой виртуальный хост с другими настройками, а для перенаправлений, которые вы хотите использовать в «этой ситуации», используйте вместо этого этот vHost. Это не PHP-код, это язык Apache. Сожалею. Нет никаких «если-то».
Расширяя ответ @Francois Marier, мне нужно было правило перезаписи, которое выглядит так без перенаправления 30X:
RewriteRule ^version/[0-9a-z\-]*/(.*)$ /foo/$1 [E=versioncache:1]
И поскольку я хотел использовать кэш версий
в Правило набора заголовков
, оно должно быть:
Header always set Cache-Control "max-age=86400" env=REWRITE_versioncache
Как вы думаете, сколько времени мне понадобится, чтобы понять, почему очевидное ... env = versioncache
не сработало? Благодарю за этот ответ за подсказку о добавлении apache REWRITE_
.
Одним из способов решения этой проблемы без удаления срока действия по умолчанию, установленного mod_expires, является добавление блока
для URL, который перенаправляется. Допустим, вы перенаправляете в папку с версией и периодически меняете эту версию:
RewriteRule ^/approot/(.*) /approot.1.2.3.4/$1 [R=307,L]
Если вы не хотите, чтобы это перенаправление кэшировалось (но вы действительно хотите, чтобы кэшировалось фактическое содержимое), просто добавьте этот блок в свой конфигурация:
<Location /approot>
ExpiresActive Off
</Location>
Конечно, « / Approot
» представляет любой URL-адрес, который вы перенаправляете.
Просто и легко. Вам не нужно возиться с уже работающей конфигурацией mod_expires. Вам не нужно пытаться добавлять или удалять заголовки с помощью mod_headers. Вы просто говорите mod_expires, чтобы он не добавлял заголовки для URL, который вы перенаправляете.
Сначала я попробовал принятый выше ответ (от Francois Marier), но он не сработал, потому что я не хотел отключать свой ExpiresDefault
, а затем необходимо воспроизвести истечение срока действия во многих различных областях конфигурации вместо него.