2011-07-17 8 views
27

일반 웹 사이트에서 압축, 브라우저 캐싱, 프록시 캐싱 등을 처리하는 최적화 된 .htaccess 구성을 누군가에게 제공 할 수 있습니까?htaccess로 캐싱 및 gzip 압축

내 방문자 외에도 Google PageSpeed를 행복하게하려고 노력 중입니다. .htaccess를 통해 캐싱과 gzip 압축을 사용하고 싶습니다. 코드를 도와주세요!

나는

내가 2 일

내가 2 일

그리고 내 html,txt,css,js,php 파일을 압축 싶어위한 html 파일을 캐시 할에 대한 xml,txt 파일을 캐시 할 오랫동안 icon,pdf,flv,jpg,png,gif,js,css,swf 파일을 캐시 할 파일 크기가 크기 때문입니다.

.htaccess를 사용하여 이미지를 gzip 할 수있는 방법이 있습니까?

+1

GIF, JPEG 또는 PNG가 이미 압축 된 형식이므로 'gzip'을 사용하여 이미지를 압축하는 것은 그리 중요하지 않습니다. 그것들을 압축하는 것은 대역폭의 어떠한 이득도없이 서버의 CPU 자원의 손실 일뿐입니다. –

+0

@hakre :이 친구를 제외하고 나에게 정답은 없습니다! –

+1

당신은 @Hamid Seyyedi입니까? 그렇다면이 사용자 계정과 [다른 사용자] (http://stackoverflow.com/users/784971/hamid-seyyedi)를 단일 계정으로 병합해야합니다. 두 개의 별도 계정을 가질 수 없습니다. –

답변

44
# 480 weeks 
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
Header set Cache-Control "max-age=290304000, public" 
</FilesMatch> 

# 2 DAYS 
<FilesMatch "\.(xml|txt)$"> 
Header set Cache-Control "max-age=172800, public, must-revalidate" 
</FilesMatch> 

# 2 HOURS 
<FilesMatch "\.(html|htm)$"> 
Header set Cache-Control "max-age=7200, must-revalidate" 
</FilesMatch> 

<ifModule mod_gzip.c> 
    mod_gzip_on Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime ^text/.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 
+0

@hakre :이 친구를 제외하고 나에게 정답은 없습니다! 눈을 뜨세요! –

+2

부분이 나를 위해 작동하지 않았습니다. 내가 내 사이트에서 시도했을 때 오류 500이 발생했습니다! 그러나 아래 답변의 AddOutputFilterByType 메서드는 완벽하게 작동합니다. 두 가지 방법의 차이점은 무엇입니까? – maxxon15

+1

Apache 1.3은 [mod_gzip] (http://sourceforge.net/projects/mod-gzip/)을 사용하고 Apache 2.x는 [mod_deflate] (http://httpd.apache.org/docs/2.0/mod/mod_deflate .html). 그래서 아파치 버전을 확인하십시오. – Andron

16

이 시도 :로

<IfModule mod_deflate.c> 
    #The following line is enough for .js and .css 
    AddOutputFilter DEFLATE js css 
    AddOutputFilterByType DEFLATE text/plain text/xml application/xhtml+xml text/css application/xml application/rss+xml application/atom_xml application/x-javascript application/x-httpd-php application/x-httpd-fastphp text/html 

    #The following lines are to avoid bugs with some browsers 
    BrowserMatch ^Mozilla/4 gzip-only-text/html 
    BrowserMatch ^Mozilla/4\.0[678] no-gzip 
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
</IfModule> 

# BEGIN EXPIRES 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresDefault "access plus 10 days" 
    ExpiresByType text/css "access plus 1 week" 
    ExpiresByType text/plain "access plus 1 month" 
    ExpiresByType image/gif "access plus 1 month" 
    ExpiresByType image/png "access plus 1 month" 
    ExpiresByType image/jpeg "access plus 1 month" 
    ExpiresByType application/x-javascript "access plus 1 month" 
    ExpiresByType application/javascript "access plus 1 week" 
    ExpiresByType application/x-icon "access plus 1 year" 
</IfModule> 
# END EXPIRES 

<IfModule mod_headers.c> 
    <FilesMatch "\.(js|css|xml|gz)$"> 
     Header append Vary Accept-Encoding 
    </FilesMatch> 
    <FilesMatch "\.(ico|jpe?g|png|gif|swf)$"> 
     Header set Cache-Control "public" 
    </FilesMatch> 
    <FilesMatch "\.(css)$"> 
     Header set Cache-Control "public" 
    </FilesMatch> 
    <FilesMatch "\.(js)$"> 
     Header set Cache-Control "private" 
    </FilesMatch> 
    <FilesMatch "\.(x?html?|php)$"> 
     Header set Cache-Control "private, must-revalidate" 
    </FilesMatch> 
</IfModule> 
+2

아파치 2.4에서 이러한 두 모듈은'deflating'을 사용하도록 설정되어야합니다 : mod_deflate.so와 mod_filter.so – Andron

2

당신은 코드를 사용할 수 있습니다 : -

<Files *> 
    #Compress 

    SetOutputFilter GZIP 

    #Caching 

    Header set Cache-Control "max-age=3600, public" 


</Files> 
1

당신은 당신의 .htaccess 파일에 다음과 같은 규칙을 사용한다 나를 신뢰가 최소 10 점 증가합니다 이미 이것을 사용하고 있지 않다면.

 

mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ 
mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 


AddOutputFilterByType DEFLATE application/javascript 
AddOutputFilterByType DEFLATE application/rss+xml 
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject 
AddOutputFilterByType DEFLATE application/x-font 
AddOutputFilterByType DEFLATE application/x-font-opentype 
AddOutputFilterByType DEFLATE application/x-font-otf 
AddOutputFilterByType DEFLATE application/x-font-truetype 
AddOutputFilterByType DEFLATE application/x-font-ttf 
AddOutputFilterByType DEFLATE application/x-javascript 
AddOutputFilterByType DEFLATE application/xhtml+xml 
AddOutputFilterByType DEFLATE application/xml 
AddOutputFilterByType DEFLATE font/opentype 
AddOutputFilterByType DEFLATE font/otf 
AddOutputFilterByType DEFLATE font/ttf 
AddOutputFilterByType DEFLATE image/svg+xml 
AddOutputFilterByType DEFLATE image/x-icon 
AddOutputFilterByType DEFLATE text/css 
AddOutputFilterByType DEFLATE text/html 
AddOutputFilterByType DEFLATE text/javascript 
AddOutputFilterByType DEFLATE text/plain 
AddOutputFilterByType DEFLATE text/xml 
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4\.0[678] no-gzip 
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
Header append Vary User-Agent 


ExpiresActive On 
ExpiresByType image/jpg "access 1 year" 
ExpiresByType image/jpeg "access 1 year" 
ExpiresByType image/gif "access 1 year" 
ExpiresByType image/png "access 1 year" 
ExpiresByType text/css "access 1 month" 
ExpiresByType text/html "access 1 month" 
ExpiresByType application/pdf "access 1 month" 
ExpiresByType text/x-javascript "access 1 month" 
ExpiresByType application/x-shockwave-flash "access 1 month" 
ExpiresByType image/x-icon "access 1 year" 
ExpiresDefault "access 1 month" 

1

htaccess로이 글을 읽는 대부분의 사람들에게

를 통해 압축 사용, 압축은 자신의 웹 호스트/서버라는 파일 htaccess로 일부 코드를 추가하여 사용할 수 있습니다. 즉, 웹 호스트에서 파일 관리자 (또는 파일을 추가 또는 업로드하기 위해 이동하는 곳)로 이동하는 것을 의미합니다.

.htaccess 파일은 사이트의 여러 가지 중요한 사항을 제어합니다. .htaccess 파일에 익숙하지 않은 경우, .htaccess 문서로 작업하면서 일부 문서를 변경하기 전에 알아 두십시오.

아래의 코드는 당신의 .htaccess 파일에 추가해야합니다 ...

<ifModule mod_gzip.c> 
mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ 
mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 

저장 htaccess로 파일을 누른 다음 웹 페이지를 새로 고칩니다.

Gzip compression tool을 사용하여 압축이 작동하는지 확인하십시오.