我们希望能够根据 Apache 中的 User-Agent 设置 Cache-Control 标头
例如,如果 User-Agent 包含子字符串,foo
我们希望将 Cache-Control 设置为 10 分钟。但如果不包含,则将其设置为 1 天。
经过一番搜索,我发现BrowserMatch
,但这似乎只能设置环境变量:
BrowserMatch foo short-live # Sets environment variable short-live
但我想有条件地应用类似Header set ...
或的指令ExpiresDefault ...
有没有办法有条件地应用声明?例如:
<FilesMatch "\.(jpg|jpeg|gif|png|js|css)$">
Header set Cache-control "max-age=86400"
<IfBrowser "foo">
Header set Cache-control "max-age=600"
</IfBrowser>
</FilesMatch>
注意,IfBrowser
是虚构的。有没有可以这样使用的真实指令?谢谢!
PS 本文转载自https://stackoverflow.com/questions/5708090/contional-declaration-in-apache-httpd自此以后,该活动很少。
答案1
已更新 - 是的,以前的代码不好。但是,这可能会给你指明正确的方向:
Header set Cache-control "max-age=86400"
SetEnvIfNoCase User-Agent libwww short-cache
Header set Cache-control "max-age=600" env=short-cache
我实际上已经测试过了,它似乎有效。