[英]Apache mod_cache: Vary cache based on cookie values
目前,我正在使用mod_cache來緩存Web應用程序的頁面詳細信息。
我有基於User-Agent和Accept-Language的緩存Vary,因為這些情況有不同的有效負載。
Vary: User-Agent, Accept-Language
我們計划在每個頁面上都有特定於區域的信息,但這是我們嘗試確定緩存策略的地方。
我們有一個cookie,用於指示我們為地理位置定位的區域,但顯然緩存不會因此cookie而異。
一般來說,某些cookie或標題的值可能會有所不同嗎? (注意我說某些cookie,因為我們不希望會話標識符與此沖突) - 類似於正則表達式匹配:
location=(.+?);
這可以使用Apache。 它可以解析cookie值並將其傳遞給自定義標頭,然后您需要通過此標頭變化:
# Set languageC cookie value to environment variable "siteLanguage"
RewriteCond %{HTTP_COOKIE} ^.*lunetics_locale.*$ [NC]
RewriteCond %{HTTP_COOKIE} (?:^|;\s*)lunetics_locale=([^;]*) [NC]
RewriteRule ^(.*)$ - [env=siteLanguage:%1]
# If no languageC cookie present. Set "siteLanguage" environment variable to "en"
RewriteCond %{HTTP_COOKIE} !^.*lunetics_locale.*$ [NC]
RewriteRule ^(.*)$ - [env=siteLanguage:en]
# Set enviroment variable "siteLanguage" value to custom header "SiteLanguage"
RequestHeader set X-Language "%{siteLanguage}e" env=siteLanguage
並在您的響應標頭中添加Vary X-Language
。 我不確定這是一種最好的方法,我有相關的問題和問題: 是否可以改變頁面緩存(具有緩存版本)具有相同的URL和不同的cookie值(語言)?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.