PHP スクリプトに、Web サイトのすべてのページの HTML を生成する次のコードがあります。
if( !headers_sent() and !ob_get_length() ) {
$days = 30;
header('Last-Modified: ' . date( 'D, d M Y H:i:s', $mtime ));
header('Expires: ' . date( 'D, d M Y H:i:s', strtotime('+' . $days . ' days') ) . ' GMT');
header('Cache-Control: max-age=' . 60*24*$days . ', public, must-revalidate');
header('Pragma: public');
ini_set( 'zlib.output_compression_level', 1 );
ob_start( 'ob_gzhandler' );
header( 'Content-Type: text/html; charset=' . strtolower( $this->PageCharset ) );
header( 'Connection: Keep-alive' );
}
とにかく、私は1つのことを理解できません:これはすべての画像、javascript、およびCSSにも適用されますか、それともページのみに適用されますか?
.htaccess では、次のディレクティブを適用して、css、js、画像など、すべての種類のファイルのキャッシュと圧縮を制御できることを知っています。 . では、Apache ディレクティブを使用せずにすべてのファイルタイプのキャッシュと圧縮を制御するにはどうすればよいでしょうか?
<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 month"
ExpiresByType application/x-icon "access plus 1 year"
</IfModule>
<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>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
# Don’t compress
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
#Dealing with proxy servers
<IfModule mod_headers.c>
Header append Vary User-Agent
</IfModule>
</IfModule>
ありがとうございました。