0

サブフォルダーのキャッシュ プロパティを変更したいのですが、期待どおりに動作しないようです。foo/images および foo/icons 内のファイルがキャッシュされる代わりに、no-cache セットで返されます。

# enable caching for static files
<Directory ~ "^/web/foo/(images|icons)">
    ExpiresActive On
    # cache images and media for 7 days
    ExpiresDefault A604800
    Header append Cache-Control "public, proxy-revalidate"
</Directory>

<Directory ~ "^/web/(foo|bar)">
    ExpiresActive On
    ExpiresDefault A0
    Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform"
    Header set Pragma "no-cache"
</Directory>

基本的に、特定のサブフォルダーにない限り、すべてをキャッシュしないようにします。私の理解では、正規表現が一致するディレクトリは、リストされている順序で一致します。

私の実際の Web サイトは、この偽の例よりもはるかに複雑であることに注意してください。はい、デフォルトをキャッシュしないように設定してからディレクトリごとに設定できることはわかっていますが、実際にはこの構成ではそれを行うことができないため、Directory ディレクティブのみで .htaccess ファイルを使用せずにこれを行いたいと考えています。

4

1 に答える 1

1

あなたの問題は、両方の<Directory ~ "..">設定が有効であることだと思います。これにより、特定性の低いもの ( ) がandディレクトリ^/web/(foo|bar)で行った変更を上書きします。これらのディレクトリを親から除外してみてください。imagesiconsDirectory

<Directory ~ "^/web/(foo|bar)(?!(/icons|/images))">
    ExpiresActive On
    ExpiresDefault A0
    Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform"
    Header set Pragma "no-cache"
</Directory>

それがあなたの前進に役立つことを願っています。

于 2013-09-30T07:33:55.807 に答える