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