2012-12-22 16 views
7

mogę mieć zarówno .htaccess z:GZIP + .htaccess korekta

DEFLATE 

o PHP, obrazy, pliki html itp + php header z:

ob_start("gzhandler") ? 

Jeśli nie, co jest najlepsza okazja? Martwię się tylko, czy to nie jest sprzeczne.

Odpowiedz

28

Stosowanie kompresji obrazów jest zazwyczaj bardzo złym pomysłem, ponieważ większość powszechnie używanych formatów graficznych w Internecie jest już skompresowana, a użytkownik będzie po prostu dodawał koszty do plików. Zwykle chcesz używać kompresji na materiałach, które mogą być reprezentowane jako tekst (html, css, js itp.), Ponieważ dla tych współczynników kompresji jest bardzo wysoki.

Jeśli chodzi o samo pytanie, o ile wiem, nie można używać jednocześnie DEFLATE i GZIP, ale szczerze mówiąc nigdy nie byłem w sytuacji, aby wypróbować coś takiego, więc proszę o zachowanie mnie, jeśli ta informacja jest nieprawidłowe.

Jeśli chodzi o wybór, gorąco polecam zapoznać się z poniższym stanowiskiem, gdzie można zobaczyć niektóre z zalet i wad obu DEFLATE i GZIP.

Why use deflate instead of gzip for text files served by Apache?

Osobiście korzystam siadać tam gdzie to możliwe tylko dlatego, że jej czasami łatwiejsze do wdrożenia przez .htaccess niż grzebać w kodzie. Podoba mi się też możliwość szybkiego wyłączenia tej funkcjonalności podczas testowania lub programowania.

EDIT: HTML5 Gotowa ma dość obszerny zbiór przydatnych .htaccess dyrektyw więc warto sprawdzić je HERE.

Teraz mimo że plik jest dość wszechstronny może po prostu chcesz użyć normalnej konfiguracji scenariusz podobny do następującego:

# ----------------------------------------------------------------------- 
# Defining MIME types to ensure the web server actually knows about them. 
# ----------------------------------------------------------------------- 
<IfModule mod_mime.c> 
    AddType application/javascript   js 
    AddType application/vnd.ms-fontobject eot 
    AddType application/x-font-ttf   ttf ttc 
    AddType font/opentype     otf 
    AddType application/x-font-woff   woff 
    AddType image/svg+xml     svg svgz 
    AddEncoding gzip      svgz 
</Ifmodule> 

# ----------------------------------------------------------------------- 
# Compressing output. 
# ----------------------------------------------------------------------- 
<IfModule mod_deflate.c> 
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json 
    AddOutputFilterByType DEFLATE application/javascript 
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component 
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml 
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype 
</Ifmodule> 
+0

Ok dzięki, to będzie dobrze? ExpiresActive na ExpiresDefault A2592000 Header unset Cache- Control SetOutputFilter DEFLATE JKMadsen

+1

Ten kod nie ma nic wspólnego z kompresją. Proszę spojrzeć na moją zaktualizowaną odpowiedź na niektóre z "najlepszych praktyk". – brezanac

+0

To działa dla mnie, ALE linia 'AddOutputFilterByType DEFLATE text/xml application/xml text/x-component' spowodowała duży błąd w Windows 7 (wszystkie przeglądarki), gdzie strona nie mogła być w ogóle dostarczona (cPanel, TYPO3 z Przepisywanie adresów URL). Skomentowałem to. – Urs