httpd配置ResponseHeader

  今天遇到一个问题:我把项目编译后的静态文件发布到开发机上,开发机使用httpd启的静态文件服务,页面的访问是在特制的壳浏览器里面,我更新了代码后,发现页面被缓存了,找到壳的RD联调了一下,发现我的主页html的ResponseHeader里面没有Cache-Control字段,如何添加该字段呢,于是翻看了一些资料,把问题顺利解决后,把解决问题的过程分享给大家。

  1.查找官网文档,找到设置HTTP request and response headers的模块,mod_headers;

  2.根据官网解释,mod_headers模块主要提供了两个指令来管理request和response header;

  (1)Header 指令

  主要用于配置response header,支持替换、合并、删除response header中的字段,基本语法如下:

Header [condition] set|append|add|unset|echo header [value] [env=[!]variable]

  (2)RequestHeader指令

  主要用于配置request header,支持替换、合并、删除request header中的字段,基本语法如下:

RequestHeader [condition] set|append|add|unset header [value] [env=[!]variable]

  (3)指令出现的地方与优先级

  以上两个指令几乎可以在配置文件任意地方出现,可以在 <Directory><Location>, <Files> 部分, 可以在 .htaccess 文件中,也可以出现在虚拟主机配置中,但是有优先级的区别,官方给出的优先级:

The directives are processed in the following order:

  1. main server
  2. virtual host
  3. <Directory> sections and .htaccess
  4. <Files>
  5. <Location>

  3.了解了基本配置规则,接下来就是动手操作了。

  (1)在httpd.conf文件确保mod_headers模块被加载

LoadModule headers_module MODULES_PATH/mod_headers.so

  (2)使用Header指令,进行set操作

<IfModule headers_module>
  Header set Cache-Control no-cache
</IfModule>

  经过以上三个步骤,重启了httpd,完美解决问题。

上一篇:Xcode的清除缓存


下一篇:Sonar相关资料