Yslowを改善するために、Cookieのないサブドメインが必要です。
Htaccessで魔女のホスト名が使用されていることを確認できますか
私の場合、www-static.example.comが呼び出されたら、設定したい
AddDefaultCharset UTF-8
ServerSignature Off
Options -Indexes
FileETag none
<IfModule mod_headers.c>
Header unset ETag
Header unset Cookie
Header unset Set-Cookie
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on
</IfModule>
<FilesMatch "\.(ico|jpg|jpeg|jpe|png|gif)$">
ExpiresDefault "access plus 2 years"
</FilesMatch>
<IfModule mod_expires.c>
ExpiresByType image/x-icon "access plus 2 years"
ExpiresByType image/ico "access plus 2 years"
ExpiresByType image/gif "access plus 2 years"
ExpiresByType image/jpg "access plus 2 years"
ExpiresByType image/jpe "access plus 2 years"
ExpiresByType image/jpeg "access plus 2 years"
ExpiresByType image/png "access plus 2 years"
</IfModule>
しかし、www.example.comにアクセスするとき、これを設定したくありません
Apache 2.4以降では、要求されたホスト名をテストするApache式を使用して、ディレクティブのブロック全体を<If>
ブロックに配置してみることができます。
例えば:
<If "%{HTTP_Host} == 'www-static.example.com'">
# :
# Directives go here...
# :
</If>
既存のディレクティブに関するいくつかの注意事項:
<IfModule mod_headers.c> Header unset ETag Header unset Cookie Header unset Set-Cookie </IfModule>
すべてのブロックを<IfModule>
ラッパーでラップする必要はないようです。
Cookie
はrequestヘッダーであるため、RequestHeader
(responseに適用)ではなく、代わりにHeader
ディレクティブを使用する必要があります。ヘッダー)。ただし、そもそもこのドメインにCookieを設定するべきではなかったので、これは不要であるはずです(そして、そもそもCookieのないドメインを持つという点を打ち負かします)。同様に、Set-Cookie
は最初から設定されるべきではなかったため、設定を解除する必要はありません。
<IfModule mod_rewrite.c> RewriteEngine On </IfModule>
親構成のmod_rewriteディレクティブをオーバーライドする意図がない限り、これは不要に思えますか?
<IfModule mod_expires.c> ExpiresActive on </IfModule> <FilesMatch "\.(ico|jpg|jpeg|jpe|png|gif)$"> ExpiresDefault "access plus 2 years" </FilesMatch> <IfModule mod_expires.c> ExpiresByType image/x-icon "access plus 2 years" ExpiresByType image/ico "access plus 2 years" ExpiresByType image/gif "access plus 2 years" ExpiresByType image/jpg "access plus 2 years" ExpiresByType image/jpe "access plus 2 years" ExpiresByType image/jpeg "access plus 2 years" ExpiresByType image/png "access plus 2 years" </IfModule>
<IfModule>
コンテナの内側と外側の両方にmod_expiresディレクティブがあります-これは実際には意味がありません。さらに、ファイル拡張子用のExpiresDefault
ディレクティブがあり、より具体的なExpiresByType
ディレクティブですでにカバーされています。 ExpiresDefault
は、このホストから提供される他の静的リソースのデフォルトとして使用する必要があります。
ちなみに、jpg/jpeg/jpeファイルの正しいmimeタイプはimage/jpeg
です。したがって、他の2つの関連するmimeタイプ(image/jpg
とimage/jpe
)は冗長です-サーバーはとにかくこれらの1つだけを返すので、サーバーが送信しているHTTP応答を確認して再確認できますバック。
したがって、mod_expiresディレクティブは次のように記述する必要があります。
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/x-icon "access plus 2 years"
ExpiresByType image/ico "access plus 2 years"
ExpiresByType image/gif "access plus 2 years"
ExpiresByType image/jpeg "access plus 2 years"
ExpiresByType image/png "access plus 2 years"
ExpiresDefault "access plus 2 years"
</IfModule>
すべての静的リソースが「アクセスプラス2年」になる場合は、ExpiresDefault
ディレクティブのみが厳密に必要です。