如何在Apache中向302重定向添加其他标头?

dea*_*mer 4 apache redirect cdn http-status-code-302

我在Apache配置中有一个重定向

重定向temp /foo.xml http://www.baz.com/foo.xml

我试图为这个302添加一个CDN的Expire和m-cache头.这在php中是微不足道的,但我需要在Apache配置文件中执行此操作.

通常这样做是这样的:

ExpiresActive On ExpiresDefault"访问加上10分钟"

但这似乎只适用于302重定向.有什么建议?

小智 14

<Location /foo.xml>
   Redirect temp /foo.xml http://www.baz.com/foo.xml
   Header always set ExpiresActive On
   Header always set ExpiresDefault "access plus 10 minutes"
</Location>
Run Code Online (Sandbox Code Playgroud)

即使使用HTTP 302响应也能使其工作(实际上,使用任何HTTP响应); 没有关键字" always ",指令"Header set"仅适用于成功响应,即HTTP 2xx响应.


Ric*_*ard 1

查看 Apache 的 mod_headers 模块。

也许是这样的:

<Location /foo.xml>
   Redirect temp /foo.xml http://www.baz.com/foo.xml
   Header always set ExpiresActive On
   Header always set ExpiresDefault "access plus 10 minutes"
</Location>
Run Code Online (Sandbox Code Playgroud)

我编辑了这个答案(因为它被接受),添加了always关键字,以反映Fix在下面正确指出的内容。

  • 除此之外,这实际上不起作用,因为完成重定向后不会添加标头。 (9认同)