我有下面的htacess代码,我想知道我如何指定它只适用于特定的文件夹。在这种情况下,只有所有的图像文件:/公共_html/img/图标/
<filesMatch ".(png)$"> Header set Cache-Control "max-age=31536000, public" </filesMatch>
iaqfqrcu1#
当请求的URL与特定文件夹和图像类型匹配时,设置环境变量(使用SetEnvIf)。根据此env var有条件地设置Header(使用Header指令的env=参数)。例如:
SetEnvIf
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_为前缀。)
.htaccess
<If>
REDIRECT_ENABLE_CACHE
REDIRECT_
1条答案
按热度按时间iaqfqrcu1#
当请求的URL与特定文件夹和图像类型匹配时,设置环境变量(使用
SetEnvIf
)。根据此env var有条件地设置Header
(使用Header
指令的env=
参数)。例如:
这个方法允许你把所有的指令保存在文档根目录下的一个
.htaccess
文件中,它也适用于所有版本的Apache(不像<If>
表达式需要Apache 2.4)。然而,这也可能依赖于
.htaccess
文件中的其他指令。(与LiteSpeed相反)并使用mod_rewrite重写URL(可能是前端控制器模式),那么您可能需要在Header
指令中测试REDIRECT_ENABLE_CACHE
。(或者更改现有指令以防止重写引擎循环,这会导致env var以REDIRECT_
为前缀。)