.htaccess에서“Vary : Accept-Encoding”헤더를 지정하는 방법
Google PageSpeed는 JS 및 CSS에 대해 "Vary : Accept-Encoding 헤더를 지정"해야한다고 말합니다. .htaccess에서 어떻게해야합니까?
클라이언트가 gzip으로 인코딩 된 콘텐츠와 일반 콘텐츠를 모두받을 수 있기 때문에 css 및 js 파일에 대해 gzip 압축을 활성화한다는 의미라고 생각합니다.
이것은 apache2에서 수행하는 방법입니다.
<IfModule mod_deflate.c>
#The following line is enough for .js and .css
AddOutputFilter DEFLATE js css
#The following line also enables compression by file content type, for the following list of Content-Type:s
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml
#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>
Vary Accept-Encoding
헤더 를 추가하는 방법은 다음과 같습니다 . [src]
<IfModule mod_headers.c>
<FilesMatch "\.(js|css|xml|gz)$">
Header append Vary: Accept-Encoding
</FilesMatch>
</IfModule>
Vary:
헤더는 특정 요청 헤더의 값에 따라 달라집니다이 URL에 대한 봉사 그 내용을 알려줍니다. 여기서는 Accept-Encoding: gzip, deflate
이 헤더를 보내지 않는 클라이언트에게 제공되는 콘텐츠와는 다른 콘텐츠 (요청 헤더) 를 말하는 클라이언트에 대해 다른 콘텐츠를 제공한다고 말합니다 . AFAIK의 가장 큰 장점은 중간 캐싱 프록시가 이러한 변경으로 인해 동일한 URL의 두 가지 버전이 필요하다는 것을 알리는 것입니다.
Aularon이 프로세스를 완료하기에 충분한 단계를 제공하지 않은 것 같습니다. 약간의 시행 착오를 거쳐 전용 WHM 서버에서 Gzipping을 성공적으로 활성화 할 수있었습니다.
다음은 단계입니다.
WHM 내에서 EasyApache를 실행하고 Exhaustive Options 목록에서 Deflate를 선택한 다음 서버를 다시 빌드하십시오.
완료되면 Services Configuration >> Apache Configuration >> Include Editor >> Post VirtualHost Include로 이동하고 모든 버전을 선택한 다음 mod_headers.c 및 mod_headers.c 코드 (Aularon의 게시물에서 위에 나열 됨)를 다른 파일 위에 붙여 넣습니다. 입력 필드.
일단 저장되면 평균 75.36 %의 데이터 절약 효과를 볼 수있었습니다! 이 HTTP 압축 도구를 사용하여 전후 테스트를 실행하여 자신의 결과를 볼 수 있습니다. http://www.whatsmyip.org/http_compression/
이것이 당신 모두에게 효과가 있기를 바랍니다!
- 매트
글꼴 파일도 gzip으로 압축하십시오!
add "x-font/otf x-font/ttf x-font/eot"
다음과 같이 :
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml x-font/otf x-font/ttf x-font/eot
그것이 무엇인지 명확히하기 위해 많은 시간을 보냈습니다. 이 게시물 을 읽고 고급 .HTACCESS
코드 를 얻고 그 기능 을 배우십시오.
당신이 사용할 수있는:
Header append Vary "Accept-Encoding"
#or
Header set Vary "Accept-Encoding"
이것은 나를 미치게 만들었지 만 aularon의 편집에 "Vary"
. 그래서 나를 위해 문제를 해결 "Vary Accept-Encoding"
하도록 변경 했습니다 "Vary: Accept-Encoding"
.
나는 게시물 아래에 댓글을 달았지만 그것이 나를 허락하지 않을 것 같습니다.
어쨌든, 나는 이것이 내가 겪었던 것과 같은 문제를 누군가에게 구하기를 바랍니다.
누구든지 NGINX
구성 파일에 이것을 필요로하는 경우 여기에 스 니펫이 있습니다.
location ~* \.(js|css|xml|gz)$ {
add_header Vary "Accept-Encoding";
(... other headers or rules ...)
}
파일이 압축되었는지 여부를 지정하거나 확인할 필요없이 모든 요청에 대해 모든 파일로 보낼 수 있습니다.
다운 스트림 프록시에 향후 요청 헤더를 일치시키는 방법을 알려서 원래 서버에서 새 응답을 요청하는 대신 캐시 된 응답을 사용할 수 있는지 여부를 결정합니다.
<ifModule mod_headers.c>
Header unset Vary
Header set Vary "Accept-Encoding, X-HTTP-Method-Override, X-Forwarded-For, Remote-Address, X-Real-IP, X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port, X-Forwarded-Server"
</ifModule>
- 는
unset
선택적으로, 오래된 GoDaddy와 호스팅에 몇 가지 버그를 수정하는 것입니다.
참고URL : https://stackoverflow.com/questions/3641197/how-to-specify-vary-accept-encoding-header-in-htaccess
'Programing' 카테고리의 다른 글
메모리에 새 java.io.File을 만드는 방법은 무엇입니까? (0) | 2020.10.06 |
---|---|
MySQL 데이터베이스를 MS SQL Server로 가져 오기 (0) | 2020.10.06 |
Tensorflow에서 global_step은 무엇을 의미합니까? (0) | 2020.10.06 |
Git이 내 이메일 주소를 공개적으로 노출합니까? (0) | 2020.10.06 |
Vimball 플러그인 (.vba 확장자 포함)을 설치하는 방법은 무엇입니까? (0) | 2020.10.06 |