Mod_expires бар кэш тақырыптарын қайта жазыңыз

Mod_expires модулін apache арқылы кэш-тақырыптарды орнатқым келеді. Менің конфигурациямыма келесідей көрінеді:


    ExpiresDefault "access plus 1 years"

Мәселе мынада, файлдар мен басқарылмайтын үшінші жүйе арқылы жасалады. Бұл жүйе файлдарды келесі тақырыптармен қамтамасыз етеді:

Date Mon, 24 Oct 2011 08:39:02 GMT
Cache-Control no-cache,no-store,must-revalidate
Pragma no-cache
Expires Thu, 01 Dec 1994 16:00:00 GMT

Бұл тақырыптар кэш тақырыптарын mod_expires параметрімен орнату мүмкін емес. http://httpd.apache.org/docs/2.2/mod/mod_expires.html неге:

Мерзімі аяқталып жатса, сервер шығарған жауаптың бөлігі болып табылады, мысалы, CGI сценарийі жасаған немесе түпнұсқалық серверден прокси болған кезде, бұл модуль аяқталмаған немесе кэш-бақылау тақырыбын өзгертпейді немесе қосады.

Бұл ережені айналып өтіп, тақырыпты mod_expires арқылы қайта жазудың мүмкін жолы бар ма?

Update: One possible solution, to avoid this limitation is to use only mod_headers to set the cache-headers. Unfortunately, this isn't an alternative because the values have to be calculated.

Алғыс айтамын.

8

3 жауаптар

Өкінішке орай, белгілі бір шектеулер және біз тек mod_headers пайдалану үшін құлап кетуіміз керек болды.

4
қосылды

Сіз оны mod_headers көмегімен араластырып көрдіңіз бе?


  Header unset Cache-Control 
  Header unset Pragma
  Header unset Expires 
  ExpiresDefault "access plus 1 years"

Тексерілмеген, бірақ ...

0
қосылды
М, бұл жұмыс істемейді. Ол тек тақырыптарды жояды. ExpiresDefault әсер етпейді.
қосылды автор scheffield, көзі
бұл пайдалану үшін балама емес, себебі access сөйлемін есептеу керек.
қосылды автор scheffield, көзі
Nopp, оның белгілі шектеулері және біз тек mod_headers пайдалану үшін құлап кету керек болды.
қосылды автор scheffield, көзі
@scheffield Сіз мұны бекітілген бе?
қосылды автор Jaap, көзі
scheffield: ok, бұл қадамдардың жартысы :-) Мүмкін сіз әлі де тақырып модулінің нұсқауларын жаңа тақырыптарды итермелеу үшін қолдануға болады, бірақ Модуль аяқталмайды. Егер сіз бұл әдепкі параметрді ғана қажет етсеңіз және ExpiresByType жоқ болса, мүмкін жұмыс істей аласыз.
қосылды автор regilero, көзі

Regilero ұсынысы жұмыс істемейді, себебі тақырыптық директивалар жауап өңдеуде өте кеш өңделеді - mod_expire директивасынан кейін. Сондықтан, mod_expires кейін тақырыптарды белгілеуіңіз керек еді (не істемеген).

Егер apache 2.2 болса, сіз әр тақырыптың директивасының соңында ерте сөзін қойып көріңіз. Мұның бәрі жауапты өңдеудің бастапқы кезеңінде мұны соңына қарай жасайды.

мына әрекетті орындаңыз:


  Header unset Cache-Control early
  Header unset Pragma early
  Header unset Expires early
  ExpiresDefault "access plus 1 years"

Теріңізді тексерген емеспін, бірақ оны сынап көріңіз ...

0
қосылды
Жоқ, бұл жұмыс істемейді.
қосылды автор scheffield, көзі
@scheffield бұл жұмыстарды жасайды ???
қосылды автор Jaap, көзі