Problem
.htaccess
를 이용하면 디렉터리 레벨에서 아파치 파일이나 설정을 재정의 할 수 있게 설정할 수 있다. 기본적으로는 httpd.conf
에서 AllowOverride
지시자를 통해서 어떤 기능을 사용할 수 있게 할지 설정 할 수 있는데, 단독 서버나 가상 서버가 아닌 호스팅 환경에서 서버 전역 설정을 수정할 수 없는 상황이라면 아래와 같이 디렉터리 별 .htaccess
를 이용해 콘텐츠의 캐시 헤더와 압축 설정으로 성능을 향상 시킬 수 있다.
Solution
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 86400 seconds"
ExpiresByType application/javascript "access plus 86400 seconds"
ExpiresByType application/x-javascript "access plus 86400 seconds"
</IfModule>
<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>
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x- javascript application/javascript
</ifmodule>