Cache

如何根據查詢參數的存在設置記憶體控制標頭?

  • March 7, 2015

我正在嘗試在我們使用查詢字元串參數設置修訂程式碼的某些資源上設置記憶體控制標頭…例如:/foo/bar/resource1.js?v20140710

這是來自 httpd.conf 文件

#set revision files far future
<LocationMatch "^.*\?v\d{8}$">
Header set Cache-Control "max-age=31535999, public"
</LocationMatch>

這似乎不起作用(未設置記憶體控制)。我想知道我是否不能在 LocationMatch 中測試查詢字元串?備擇方案?

我看到了使用重寫規則的建議… RewriteCond %{QUERY_STRING} “^.*?v\d{8}$”

但是我不確定如何將標題設置為重寫規則?

所以兩個問題……我可以根據查詢字元串(以及如何)直接匹配 GET 請求嗎?如果沒有,還能如何做到這一點?

我過於復雜了……(並且對 Apache conf 表達式有點無知)。這做到了。

<If "%{QUERY_STRING} =~ /v\d{8}$/">
Header set Cache-Control "max-age=31535999, public"
</If>

引用自:https://serverfault.com/questions/673625