Trong .htaccess của gốc của bạn:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</IfModule>
Và làm theo bởi:
<IfModule mod_headers.c>
<FilesMatch "\\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "\\.(css)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</FilesMatch>
<FilesMatch "\\.(x?html?|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</FilesMatch>
Header unset ETag
Header unset Last-Modified
</IfModule>
Đây là mã chính xác cùng tôi sử dụng trên mọi thuộc tính tôi quản lý và cung cấp cho tôi (và PageSpeed) những kết quả hài lòng nhất. Người ta có thể tranh luận về các quy tắc cụ thể, đó là lý do tại sao tôi nói rằng nó đáp ứng tôi, nhưng chắc chắn nó đáp ứng PageSpeed.
Điều đó phụ thuộc vào ý bạn là "nhiều điều kiện". Các điều kiện phải được xử lý bởi máy chủ web trên mỗi yêu cầu HTTP vì vậy nếu bạn nghĩ về 65.000 điều kiện, thì đó chắc chắn không phải là ý tưởng hay – methode
Chỉ cần một mẹo. Bạn chỉ có thể viết "truy cập cộng thêm 1 năm" hoặc thậm chí nhiều chỉ thị phức tạp hơn như "quyền truy cập cộng thêm 1 tháng 15 ngày 2 giờ" dễ đọc hơn và duy trì hơn giây. – GeneQ
@GeneQ, +1 cho mẹo đó. Tôi được sử dụng để unix timestamps, có lẽ đó là lý do tại sao tôi sử dụng giây trong các quy tắc. – methode