2012-05-30 8 views
5

W httpd.conf ostatnie linie są:nagłówka wygasa pracy

ExpiresActive On 
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
    ExpiresDefault "access plus 3 days" 
</FilesMatch> 

Kiedy biegnę YSlow mówi wszystkie moje pliki CSS (i inni) nie mają zestaw ważności. Pliki CSS znajdują się w podkatalogach, ale uważam, że "\." powinien pasować do wszystkich plików niezależnie od podkatalogu.

Apache jest skonfigurowany dla wirtualnych hostów, ale powyższe dyrektywy znajdują się poza sekcją vhosts na samym dole httpd.conf.

Istnieje dyrektywa dla LoadModule expires_module modules/mod_expires.so w pliku .conf.

Witryna jest na AWS z systemem AWS Linux i Apache2. Ponownie uruchomiłem apache przed sprawdzeniem, czy zadziałało.

Odpowiedz

7

w odpowiedzi na Twoje pytanie, to działa na mnie w moim httpd.conf:

LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so 
ExpiresActive On 

<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
ExpiresDefault "access plus 3 days" 
</filesMatch> 

Oto kilka rzeczy, aby spróbować:

1) Upewnij mod_expires.so gdzie myślisz to jest. Możesz zobaczyć, jakie moduły są dołączane, używając tego w twoim terminalu: apache2 -M.

2) Upewnij się, że wytyczne mają zastosowanie do plików, które Cię interesują (czyli nie uzyskiwanie nadpisane przez .htaccess pliku gdzieś dalej wzdłuż linii)

3) Upewnij się dyrektywa LoadModule jest w httpd. Plik conf

4) W swoim regex FilesMatch powinieneś uciec kropką z odwrotnym ukośnikiem, w przeciwnym razie dopasujesz dowolny znak. To nie jest duży problem, ale w końcu zastosujesz tę regułę do stron niestacjonarnych, takich jak "site.com/politico" (zauważ koniec ico).

+0

Dzięki za jasną odpowiedź. Miałem wszystko z wyjątkiem umieszczenia kodu (twój przedmiot3). Umieściłem go w sekcji wirtualnego hosta dla witryny, a presto yslow był szczęśliwy! Dzięki jeszcze raz. – Jim

+0

Świetnie, cieszę się, że pomogło! – pieman72

Powiązane problemy