標籤:尋找 unset director sed 檔案 htaccess 指令 main span
今天遇到一個問題:我把項目編譯後的靜態檔案發布到開發機上,開發機使用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:
- main server
- virtual host
<Directory> sections and .htaccess
<Files>
<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,完美解決問題。
httpd配置ResponseHeader