|
|
|
|
|
本文分別介紹在linux和windows系統(tǒng)Apache是如何添加網(wǎng)頁header信息的。
進入lamp源代碼安裝目錄 modules/metadata
:
[root@localhost ~]# cd /lamp/httpd-2.2.20/modules/metadata
執(zhí)行 ls | grep
命令,我們發(fā)現(xiàn)有幾個文件:
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服務(wù)。
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
內(nèi)容的最后面添加自定義的header信息:
Header always append myHeader "123"
添加自定義的header信息
我們還可以只給某個目錄的網(wǎng)頁添加自定義header信息,其他目錄不添加。
只給某目錄的網(wǎng)頁添加header
上述代碼中 D:/Apache2.2/htdocs/
是網(wǎng)站根目錄,而 /tags/
是網(wǎng)站的一個目錄。
通過瀏覽器訪問,使用開發(fā)者工具查看header是否生效。
查看header是否生效(點擊圖片放大)
你也可以直接使用在線工具查看網(wǎng)頁header信息,如:http://pagespeed.webkaka.com/youhua/gzip/,你還可以使用本機 Telnet 命令查看網(wǎng)頁header信息。
描述: 配置HTTP響應(yīng)頭
句法: Header [condition] set|append|add|unset|echo header [value] [env=[!]variable]
該指令可以替換,合并或刪除HTTP響應(yīng)頭。在內(nèi)容處理程序和輸出過濾器運行之后,頭文件被修改,允許修改傳出頭文件。
可選條件可以是 onsuccess
或者 always
。它確定應(yīng)該操作哪個內(nèi)部頭表。onsuccess
代表 2xx狀態(tài)碼而 always
代表所有狀態(tài)碼(包括2xx)。特別是如果你想取消設(shè)置某些模塊的頭文件,你應(yīng)該試試,哪個表會受到影響。
它執(zhí)行的動作由第二個參數(shù)決定。這可以是以下值之一:
響應(yīng)標(biāo)題被設(shè)置,用這個名字替換任何以前的標(biāo)題。該值可以是格式字符串。
響應(yīng)頭被追加到任何現(xiàn)有的相同名稱的頭。當(dāng)一個新的值被合并到一個已經(jīng)存在的頭上時,它將與逗號分開。這是給標(biāo)題多個值的HTTP標(biāo)準(zhǔn)方式。
響應(yīng)標(biāo)題被添加到現(xiàn)有的標(biāo)題集,即使這個標(biāo)題已經(jīng)存在。這可能會導(dǎo)致兩個(或更多)標(biāo)題具有相同的名稱。這可能會導(dǎo)致不可預(yù)見的后果,應(yīng)該使用“附加”來代替。
如果該名稱存在,則會刪除該名稱的響應(yīng)標(biāo)題。如果有多個相同名稱的標(biāo)題,則全部將被刪除。
帶有這個名字的請求頭在回應(yīng)頭中回顯。標(biāo)題可能是一個正則表達式。
該參數(shù)后面跟著一個 header 名稱,可以包含最后的冒號,但不是必需的。對于 set,append,add 和unset,大小寫是忽視的,但 echo 的 header 名稱是大小寫敏感的,并且可以是正則表達式。