Apache httpd 中的条件声明

Apache httpd 中的条件声明

我们希望能够根据 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

我实际上已经测试过了,它似乎有效。

相关内容