.htaccess 仅在特定文件夹中启用图像缓存

jtw3ybtb  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(117)

我有下面的htacess代码,我想知道我如何指定它只适用于特定的文件夹。在这种情况下,只有所有的图像文件:/公共_html/img/图标/

<filesMatch ".(png)$">
    Header set Cache-Control "max-age=31536000, public"
</filesMatch>
iaqfqrcu

iaqfqrcu1#

当请求的URL与特定文件夹和图像类型匹配时,设置环境变量(使用SetEnvIf)。根据此env var有条件地设置Header(使用Header指令的env=参数)。
例如:

# Cache images in the "/img/icons" subdirectory
SetEnvIf Request_URI "^/img/icons/.+\.(png|jpg|gif)$" ENABLE_CACHE
Header set Cache-Control "max-age=31536000, public" env=ENABLE_CACHE

这个方法允许你把所有的指令保存在文档根目录下的一个.htaccess文件中,它也适用于所有版本的Apache(不像<If>表达式需要Apache 2.4)。
然而,这也可能依赖于.htaccess文件中的其他指令。(与LiteSpeed相反)并使用mod_rewrite重写URL(可能是前端控制器模式),那么您可能需要在Header指令中测试REDIRECT_ENABLE_CACHE。(或者更改现有指令以防止重写引擎循环,这会导致env var以REDIRECT_为前缀。)

相关问题