代码之家  ›  专栏  ›  技术社区  ›  Eddie

使用ApacheHTTPD,如何为给定的UserAgent配置无缓存?

  •  1
  • Eddie  · 技术社区  · 16 年前

    ExpiresActive On
    ExpiresDefault "access plus 1 year"
    
    # Force JNLP and BSH files to expire immediately so updates are checked for
    # and seen (We need this so we see changes in the dynamic content in both)
    ExpiresByType application/x-java-jnlp-file "now"
    ExpiresByType application/x-bsh "now"
    

    我怎样才能对任何请求禁用此缓存 UserAgent 包含字符串JNLP?当请求来自用户代理JNLP时(例如“ User-Agent: JNLP/6.0 javaws/1.6.0_12 (b04) Java/1.6.0_12 )我不想 任何 Cache-Control 或HTTP响应上的其他缓存相关标头。

    1 回复  |  直到 16 年前
        1
  •  4
  •   David Z    16 年前

    你的 ExpiresByType 看起来是个好主意。。。如果这还不够,那么尝试使用 BrowserMatch :

    BrowserMatch JNLP ua_is_jnlp
    

    这将设置环境变量 ua_is_jnlp 对于其用户代理标头包含字符串的任何请求,将其设置为某个值 JNLP (还有一个不区分大小写的变体, BrowserMatchNoCase

    Header unset Cache-Control env=ua_in_jnlp
    Header unset Expires env=ua_in_jnlp
    

    不过,如果您想完全禁用缓存,最好设置

    Header set Cache-Control no-cache env=ua_in_jnlp
    Header set Expires 0 env=ua_in_jnlp