【问题标题】:ExpiresByType with both a wildcard and a specific mime type带有通配符和特定 mime 类型的 ExpiresByType
【发布时间】:2018-03-12 15:59:22
【问题描述】:

如果我设置使用 Apache:

ExpiresByType image/* A3600
ExpiresByType image/png A7200

据推测,反转这将使所有图像缓存一小时,因为通配符是最后一个:

ExpiresByType image/png A7200
ExpiresByType image/* A3600

图片将默认为一小时到期,但我的 PNG 文件会被缓存一两个小时吗?或者换一种说法,mod_expires 在找到第一个匹配项后是否继续处理规则?我在 SO 或文档中,甚至在在线示例中都找不到明确的答案。这可能在 HTTPd 版本之间保持一致吗?

【问题讨论】:

    标签: apache mod-expires


    【解决方案1】:

    我在 Apache 2.4.6 上观察到了这一点

    ExpiresByType image/* A3600
    ExpiresByType image/png A7200
    

    ExpiresByType image/png A7200
    ExpiresByType image/* A3600
    

    两者的结果相同:PNG 文件的到期日期设置为 2 小时,其他图像文件的到期日期设置为 1 小时,即更具体的 ExpiresByType 指令胜出,无论顺序如何.

    变更日志表明,从古老的 Apache 版本到最新版本,这种行为应该是一致的。

    【讨论】:

    • 有趣的巧合,一年后我也面临同样的问题 :)
    • 诡异。我们最终没有选择它,而是选择 image/* 和 text/html 等的显式 ExpiresByType 等。像你一样查看源代码/变更日志是正确的答案。谢谢@Sam!
    猜你喜欢
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    相关资源
    最近更新 更多