|
|
|
|
|
|
本文分別介紹在linux和windows系統Apache是如何添加網頁header信息的。
進入lamp源代碼安裝目錄 modules/metadata :
[root@localhost ~]# cd /lamp/httpd-2.2.20/modules/metadata
執行 ls | grep 命令,我們發現有幾個文件:
mod_headers.c
mod_headers.dep
mod_headers.dsp
mod_headers.exp
mod_headers.mak
我們需要的是 mod_headers.c。
然后用apxs工具添加模塊(注意apxs的路徑是在apache安裝目錄下):
[root@localhost metadata]# /usr/local/apache2/bin/apxs -i -a -c mod_headers.c
稍等片刻,安裝完畢后重啟httpd服務。
service httpd restart
修改Apache配置文件httpd.conf(注意httpd.conf在apache安裝目錄的conf文件夾下):
[root@localhost]# vim /usr/local/apache2/conf/httpd.conf
<IFModule mod_headers.c>
Header add MyHeader "hello"
</IFModule>
添加完后立即測試:
[root@localhost]# curl -I 192.168.0.10/test.php
HTTP/1.1 200 OK
Date: Sat, 19 Apr 2014 02:45:13 GMT
Server: Apache/2.2.16 (Unix) PHP/5.3.27
X-Powered-By: PHP/5.3.27
MyHeader: hello //自定義的header
Content-Type: text/html
打開Apache配置文件httpd.conf,此文件在Apache安裝目錄下的 conf 文件夾里,然后把 #LoadModule headers_module 前面的 # 去掉。

啟用 headers_module
在 httpd.conf 內容的最后面添加自定義的header信息:
Header always append myHeader "123"

添加自定義的header信息
我們還可以只給某個目錄的網頁添加自定義header信息,其他目錄不添加。

只給某目錄的網頁添加header
上述代碼中 D:/Apache2.2/htdocs/ 是網站根目錄,而 /tags/ 是網站的一個目錄。
通過瀏覽器訪問,使用開發者工具查看header是否生效。
查看header是否生效(點擊圖片放大)
你也可以直接使用在線工具查看網頁header信息,如:http://pagespeed.webkaka.com/youhua/gzip/,你還可以使用本機 Telnet 命令查看網頁header信息。
描述: 配置HTTP響應頭
句法: Header [condition] set|append|add|unset|echo header [value] [env=[!]variable]
該指令可以替換,合并或刪除HTTP響應頭。在內容處理程序和輸出過濾器運行之后,頭文件被修改,允許修改傳出頭文件。
可選條件可以是 onsuccess 或者 always。它確定應該操作哪個內部頭表。onsuccess代表 2xx狀態碼而 always 代表所有狀態碼(包括2xx)。特別是如果你想取消設置某些模塊的頭文件,你應該試試,哪個表會受到影響。
它執行的動作由第二個參數決定。這可以是以下值之一:
響應標題被設置,用這個名字替換任何以前的標題。該值可以是格式字符串。
響應頭被追加到任何現有的相同名稱的頭。當一個新的值被合并到一個已經存在的頭上時,它將與逗號分開。這是給標題多個值的HTTP標準方式。
響應標題被添加到現有的標題集,即使這個標題已經存在。這可能會導致兩個(或更多)標題具有相同的名稱。這可能會導致不可預見的后果,應該使用“附加”來代替。
如果該名稱存在,則會刪除該名稱的響應標題。如果有多個相同名稱的標題,則全部將被刪除。
帶有這個名字的請求頭在回應頭中回顯。標題可能是一個正則表達式。
該參數后面跟著一個 header 名稱,可以包含最后的冒號,但不是必需的。對于 set,append,add 和unset,大小寫是忽視的,但 echo 的 header 名稱是大小寫敏感的,并且可以是正則表達式。
