mod_expires 為 3## 狀態碼發送 Cache-Control 標頭 (mod_expires sending Cache-Control headers for 3## status codes)


問題描述

mod_expires 為 3## 狀態碼發送 Cache‑Control 標頭 (mod_expires sending Cache‑Control headers for 3## status codes)

Apache is sending Cache‑Control headers for 3## status codes, like 302 redirects. This is causing Firefox (possibly starting with Firefox 5) to cache the 302 redirects‑‑which results in an infinite redirect loop for some of my pages.

Here are the settings that I am using in my httpd.conf:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A600
</IfModule>

If I remove the ExpiresDefault setting, the problem goes away, so I am confident that this is the exact setting that is causing the problem. If I change ExpiresDefault A600 to ExpiresByType text/html A600 the problem is still there.

I'd like to have browsers cache my content by default, but this is a deal‑breaker.

Are there any settings I can use to tell Apache to send a different Cache‑Control header for 3## status codes? 

‑‑‑‑‑

參考解法

方法 1:

If you add the Cache‑Control headers in your application, which builds the redirect, apache will not overwrite it.

Cache‑Control: max‑age=0
Expires: Sat, 04 Feb 2012 07:02:38 GMT

if you use apaches mod_rewrite to do the redirect you could add the headers with the  mod_headers module.

(by Joe Lencionigschaden)

參考文件

  1. mod_expires sending Cache‑Control headers for 3## status codes (CC BY‑SA 3.0/4.0)

#mod-expires #apache #browser-cache #redirect #cache-control






相關問題

lighttpd 中靜態圖片的 expires.url 配置 (expires.url configuration for static images in lighttpd)

mod_expires.c 和 mod_headers.c 根據 google pagespeed 見解無法正常工作 (mod_expires.c and mod_headers.c not working according to google pagespeed insights)

Apache FilesMatch - 匹配正則表達式中的文件夾 (Apache FilesMatch - matching a folder in the regular expression)

mod_expires 為 3## 狀態碼發送 Cache-Control 標頭 (mod_expires sending Cache-Control headers for 3## status codes)

Apache:如何在未安裝 mod_expires 的情況下將 Expires 標頭添加到文件中 (Apache: How to add Expires headers to files without mod_expires installed)

PHP session_start() 覆蓋 HTTP Expires 標頭 (PHP session_start() overwrites HTTP Expires header)

添加過期標頭以提高使用 .htaccess 的頁面的性能 (Add expire header to improve the performance of page using .htaccess)

使用 apache mod_expires 緩存 php,php 文件的 mime 類型是什麼? (Use apache mod_expires to cache php, what is a mime type for php files?)







留言討論