apache SHTML網(wǎng)頁(yè)SSI使用詳解
更新時(shí)間:2009年10月09日 12:49:42 作者:
在網(wǎng)站構(gòu)建過(guò)中。當(dāng)我們遇到很多的內(nèi)容為靜態(tài)頁(yè)面,而頁(yè)首與頁(yè)腳又經(jīng)常要更換時(shí),如果一直使用html文件總會(huì)有很多的麻煩。
方法一:下面是詳細(xì)的設(shè)置apache支持shtml的設(shè)置步驟
開(kāi)啟includes模塊運(yùn)行shtml
0、開(kāi)啟php環(huán)境安裝目錄 (我的為D:\wamp\Apache2\conf下) 的httpd.conf 文件中的(大概408-409行處):
1、 AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
2、(F:/shz 為運(yùn)行文件存放的地方)
DocumentRoot "F:/shz" (大概150處)
<Directory "F:/shz"> (大概178處)
3、在Options Indexes FollowSymLinks 后面添加 +Includes
如:Options Indexes FollowSymLinks +Includes (大概197處):
需重啟apache);
方法二:如何讓apache支持.shtml 讓apache支持include標(biāo)簽
打開(kāi)conf目錄下的httpd.conf文件,搜索“AddType text/html .shtml”,搜索結(jié)果:
修改為:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Options Indexes FollowSymLinks includes
保存httpd.conf,重起apache即可。
到此我們就完成了對(duì)Apache SSI的設(shè)置.
<!--#include file="index.php"-->
個(gè)人覺(jué)得SSI的好處是靜態(tài)化中局部動(dòng)態(tài)化的處理比較方便,比如新聞中的留言
以下是詳細(xì)的說(shuō)明介紹
因?yàn)榕啃薷钠饋?lái)很不方面,所以我們總希望能將頁(yè)腳與頁(yè)尾include到html文件中來(lái)。html屬于客戶端解析形的格式化語(yǔ)言,自4.0后幾乎很難再有大的變動(dòng)(畢竟很多瀏覽器只按4.0標(biāo)準(zhǔn)來(lái)解析),所以至今也沒(méi)include這樣的概念。而html的框架(frame與iframe)雖然可以用來(lái)包含首頁(yè)與頁(yè)腳文件,但使用frame與iframe的概念與動(dòng)態(tài)頁(yè)面(asp,jsp,php等)的include那樣不同,frame與iframe的主體頁(yè)面與被包括的頁(yè)的不是一個(gè)頁(yè)面,而通過(guò)include的方式調(diào)用的頁(yè)面主體頁(yè)面與被包括的頁(yè)面仍然是一個(gè)頁(yè)面,這樣頁(yè)面再加載的時(shí)就沒(méi)速度的影響,更不會(huì)有多個(gè)窗口這樣的問(wèn)題。當(dāng)然frame與iframe的作用還是挺大的,只是這與include這樣包括頁(yè)面進(jìn)來(lái)的概念不同。
除frame與iframe之外,常用的調(diào)用文件的方法還有采用js。這與include概念倒是很接近,但可以需要客戶端js的支持,而且修改也不很方面,因?yàn)楸话ǖ膉s是通過(guò)document.write來(lái)輸出html代碼,這樣雖然能達(dá)到效果,可js畢竟執(zhí)行客戶端動(dòng)態(tài)效果更好,比如現(xiàn)在較流行的AJAX。所以無(wú)論是frame/iframe還是js都與include不太一樣(倒是Dreamweaver中的library與include很像,可惜只能用在Dreamweaver中),而我們有時(shí)頁(yè)面有很多靜態(tài)頁(yè)面,內(nèi)容不是動(dòng)態(tài)的且沒(méi)有規(guī)律可循,更不好做到數(shù)據(jù)庫(kù)里去。如新浪的新聞之類(lèi)的,這時(shí)我們可以采用shtml的方式來(lái)做這些頁(yè)面。
那什么是shtml呢?
使用SSI(Server Side Include)的html文件擴(kuò)展名,SSI(Server Side Include),通常稱為"服務(wù)器端嵌入"或者叫"服務(wù)器端包含",是一種類(lèi)似于ASP的基于服務(wù)器的網(wǎng)頁(yè)制作技術(shù)。默認(rèn)擴(kuò)展名是 .stm、.shtm 和 .shtml。
什么是SSI?
SSI是英文Server Side Includes的縮寫(xiě),翻譯成中文就是服務(wù)器端包含的意思。從技術(shù)角度上說(shuō),SSI就是在HTML文件中,可以通過(guò)注釋行調(diào)用的命令或指針。SSI具有 強(qiáng)大的功能,只要使用一條簡(jiǎn)單的SSI命令就可以實(shí)現(xiàn)整個(gè)網(wǎng)站的內(nèi)容更新,時(shí)間和日期的動(dòng)態(tài)顯示,以及執(zhí)行shell和CGI腳本程序等復(fù)雜的功能。 網(wǎng)站維護(hù)常常碰到的一個(gè)問(wèn)題是,網(wǎng)站的結(jié)構(gòu)已經(jīng)固定,卻為了更新一點(diǎn)內(nèi)容而不得不重做一大批網(wǎng)頁(yè)。SSI提供了一種簡(jiǎn)單、有效的方法來(lái)解決這一問(wèn)題,它將 一個(gè)網(wǎng)站的基本結(jié)構(gòu)放在幾個(gè)簡(jiǎn)單的HTML文件中(模板),以后我們要做的只是將文本傳到服務(wù)器,讓程序按照模板自動(dòng)生成網(wǎng)頁(yè),從而使管理大型網(wǎng)站變得容易。
如何使你的Apache服務(wù)器支持SSI?
Apache(如何在windows以及l(fā)inuc下安裝apache請(qǐng)參見(jiàn)另兩篇文章)默認(rèn)是不支持SSI的,需要我們更改httpd.conf來(lái)進(jìn)行配置。我這里以windows平臺(tái)的Apache 2.0.x為例(在linux平臺(tái)下與之相同),打開(kāi)conf目錄下的httpd.conf文件,搜索“AddType text/html .shtml”,找到:
以下是引用片段:
# AddType text/html .shtml
# AddOutputFilter INCLUDES .shtml
把這兩行前面的#去掉 。
然后搜索“Options Indexes FollowSymLinks”
在搜索到的那一行后面添加“ Includes”
即將該行改變?yōu)?Options Indexes FollowSymLinks Includes
熟悉apache manual的可能會(huì)覺(jué)得比較容易。
保存httpd.conf,重起apache即可
到此我們就完成了對(duì)Apache SSI的設(shè)置。
SSI命令:
1、Config命令
Config命令主要用于修改SSI的默認(rèn)設(shè)置。其中:
Errmsg:設(shè)置默認(rèn)錯(cuò)誤信息。為了能夠正常的返回用戶設(shè)定的錯(cuò)誤信息,在HTML文件中Errmsg參數(shù)必須被放置在其它SSI命令的前面,否則客戶端只能顯示默認(rèn)的錯(cuò)誤信息,而不是由用戶設(shè)定的自定義信息。
<!--#config errmsg="Error! Please email webmaster@mydomain.com -->
Timefmt:定義日期和時(shí)間的使用格式。Timefmt參數(shù)必須在echo命令之前使用。
<!--#config timefmt="%A, %B %d, %Y"-->
<!--#echo var="LAST_MODIFIED" -->
顯示結(jié)果為:Wednesday, April 12, 2000
Sizefmt:決定文件大小是以字節(jié)、千字節(jié)還是兆字節(jié)為單位表示。如果以字節(jié)為單位,參數(shù)值為"bytes";對(duì)于千字節(jié)和兆字節(jié)可以使用縮寫(xiě)形式。同樣,sizefmt參數(shù)必須放在fsize命令的前面才能使用。
<!--#config sizefmt="bytes" -->
<!--#fsize file="index.html" -->
2、Include命令
Include命令可以把其它文檔中的文字或圖片插入到當(dāng)前被解析的文檔中,這是整個(gè)SSI的關(guān)鍵所在。通過(guò)Include命令只需要改動(dòng)一個(gè)文件就可以瞬間更新整個(gè)站點(diǎn)!
Include命令具有兩個(gè)不同的參數(shù):
Virtual:給出到服務(wù)器端某個(gè)文檔的虛擬路徑。例如:<!--#include virtual="/includes/header.html" -->
File:給出到當(dāng)前目錄的相對(duì)路徑,其中不能使用"../",也不能使用絕對(duì)路徑。例如:<!--#include file="header.html" -->
這就要求每一個(gè)目錄中都包含一個(gè)header.html文件。
開(kāi)啟includes模塊運(yùn)行shtml
0、開(kāi)啟php環(huán)境安裝目錄 (我的為D:\wamp\Apache2\conf下) 的httpd.conf 文件中的(大概408-409行處):
1、 AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
2、(F:/shz 為運(yùn)行文件存放的地方)
DocumentRoot "F:/shz" (大概150處)
<Directory "F:/shz"> (大概178處)
3、在Options Indexes FollowSymLinks 后面添加 +Includes
如:Options Indexes FollowSymLinks +Includes (大概197處):
需重啟apache);
方法二:如何讓apache支持.shtml 讓apache支持include標(biāo)簽
打開(kāi)conf目錄下的httpd.conf文件,搜索“AddType text/html .shtml”,搜索結(jié)果:
修改為:
復(fù)制代碼 代碼如下:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Options Indexes FollowSymLinks includes
保存httpd.conf,重起apache即可。
到此我們就完成了對(duì)Apache SSI的設(shè)置.
<!--#include file="index.php"-->
個(gè)人覺(jué)得SSI的好處是靜態(tài)化中局部動(dòng)態(tài)化的處理比較方便,比如新聞中的留言
以下是詳細(xì)的說(shuō)明介紹
因?yàn)榕啃薷钠饋?lái)很不方面,所以我們總希望能將頁(yè)腳與頁(yè)尾include到html文件中來(lái)。html屬于客戶端解析形的格式化語(yǔ)言,自4.0后幾乎很難再有大的變動(dòng)(畢竟很多瀏覽器只按4.0標(biāo)準(zhǔn)來(lái)解析),所以至今也沒(méi)include這樣的概念。而html的框架(frame與iframe)雖然可以用來(lái)包含首頁(yè)與頁(yè)腳文件,但使用frame與iframe的概念與動(dòng)態(tài)頁(yè)面(asp,jsp,php等)的include那樣不同,frame與iframe的主體頁(yè)面與被包括的頁(yè)的不是一個(gè)頁(yè)面,而通過(guò)include的方式調(diào)用的頁(yè)面主體頁(yè)面與被包括的頁(yè)面仍然是一個(gè)頁(yè)面,這樣頁(yè)面再加載的時(shí)就沒(méi)速度的影響,更不會(huì)有多個(gè)窗口這樣的問(wèn)題。當(dāng)然frame與iframe的作用還是挺大的,只是這與include這樣包括頁(yè)面進(jìn)來(lái)的概念不同。
除frame與iframe之外,常用的調(diào)用文件的方法還有采用js。這與include概念倒是很接近,但可以需要客戶端js的支持,而且修改也不很方面,因?yàn)楸话ǖ膉s是通過(guò)document.write來(lái)輸出html代碼,這樣雖然能達(dá)到效果,可js畢竟執(zhí)行客戶端動(dòng)態(tài)效果更好,比如現(xiàn)在較流行的AJAX。所以無(wú)論是frame/iframe還是js都與include不太一樣(倒是Dreamweaver中的library與include很像,可惜只能用在Dreamweaver中),而我們有時(shí)頁(yè)面有很多靜態(tài)頁(yè)面,內(nèi)容不是動(dòng)態(tài)的且沒(méi)有規(guī)律可循,更不好做到數(shù)據(jù)庫(kù)里去。如新浪的新聞之類(lèi)的,這時(shí)我們可以采用shtml的方式來(lái)做這些頁(yè)面。
那什么是shtml呢?
使用SSI(Server Side Include)的html文件擴(kuò)展名,SSI(Server Side Include),通常稱為"服務(wù)器端嵌入"或者叫"服務(wù)器端包含",是一種類(lèi)似于ASP的基于服務(wù)器的網(wǎng)頁(yè)制作技術(shù)。默認(rèn)擴(kuò)展名是 .stm、.shtm 和 .shtml。
什么是SSI?
SSI是英文Server Side Includes的縮寫(xiě),翻譯成中文就是服務(wù)器端包含的意思。從技術(shù)角度上說(shuō),SSI就是在HTML文件中,可以通過(guò)注釋行調(diào)用的命令或指針。SSI具有 強(qiáng)大的功能,只要使用一條簡(jiǎn)單的SSI命令就可以實(shí)現(xiàn)整個(gè)網(wǎng)站的內(nèi)容更新,時(shí)間和日期的動(dòng)態(tài)顯示,以及執(zhí)行shell和CGI腳本程序等復(fù)雜的功能。 網(wǎng)站維護(hù)常常碰到的一個(gè)問(wèn)題是,網(wǎng)站的結(jié)構(gòu)已經(jīng)固定,卻為了更新一點(diǎn)內(nèi)容而不得不重做一大批網(wǎng)頁(yè)。SSI提供了一種簡(jiǎn)單、有效的方法來(lái)解決這一問(wèn)題,它將 一個(gè)網(wǎng)站的基本結(jié)構(gòu)放在幾個(gè)簡(jiǎn)單的HTML文件中(模板),以后我們要做的只是將文本傳到服務(wù)器,讓程序按照模板自動(dòng)生成網(wǎng)頁(yè),從而使管理大型網(wǎng)站變得容易。
如何使你的Apache服務(wù)器支持SSI?
Apache(如何在windows以及l(fā)inuc下安裝apache請(qǐng)參見(jiàn)另兩篇文章)默認(rèn)是不支持SSI的,需要我們更改httpd.conf來(lái)進(jìn)行配置。我這里以windows平臺(tái)的Apache 2.0.x為例(在linux平臺(tái)下與之相同),打開(kāi)conf目錄下的httpd.conf文件,搜索“AddType text/html .shtml”,找到:
以下是引用片段:
復(fù)制代碼 代碼如下:
# AddType text/html .shtml
# AddOutputFilter INCLUDES .shtml
把這兩行前面的#去掉 。
然后搜索“Options Indexes FollowSymLinks”
在搜索到的那一行后面添加“ Includes”
即將該行改變?yōu)?Options Indexes FollowSymLinks Includes
熟悉apache manual的可能會(huì)覺(jué)得比較容易。
保存httpd.conf,重起apache即可
到此我們就完成了對(duì)Apache SSI的設(shè)置。
SSI命令:
1、Config命令
Config命令主要用于修改SSI的默認(rèn)設(shè)置。其中:
Errmsg:設(shè)置默認(rèn)錯(cuò)誤信息。為了能夠正常的返回用戶設(shè)定的錯(cuò)誤信息,在HTML文件中Errmsg參數(shù)必須被放置在其它SSI命令的前面,否則客戶端只能顯示默認(rèn)的錯(cuò)誤信息,而不是由用戶設(shè)定的自定義信息。
<!--#config errmsg="Error! Please email webmaster@mydomain.com -->
Timefmt:定義日期和時(shí)間的使用格式。Timefmt參數(shù)必須在echo命令之前使用。
<!--#config timefmt="%A, %B %d, %Y"-->
<!--#echo var="LAST_MODIFIED" -->
顯示結(jié)果為:Wednesday, April 12, 2000
Sizefmt:決定文件大小是以字節(jié)、千字節(jié)還是兆字節(jié)為單位表示。如果以字節(jié)為單位,參數(shù)值為"bytes";對(duì)于千字節(jié)和兆字節(jié)可以使用縮寫(xiě)形式。同樣,sizefmt參數(shù)必須放在fsize命令的前面才能使用。
<!--#config sizefmt="bytes" -->
<!--#fsize file="index.html" -->
2、Include命令
Include命令可以把其它文檔中的文字或圖片插入到當(dāng)前被解析的文檔中,這是整個(gè)SSI的關(guān)鍵所在。通過(guò)Include命令只需要改動(dòng)一個(gè)文件就可以瞬間更新整個(gè)站點(diǎn)!
Include命令具有兩個(gè)不同的參數(shù):
Virtual:給出到服務(wù)器端某個(gè)文檔的虛擬路徑。例如:<!--#include virtual="/includes/header.html" -->
File:給出到當(dāng)前目錄的相對(duì)路徑,其中不能使用"../",也不能使用絕對(duì)路徑。例如:<!--#include file="header.html" -->
這就要求每一個(gè)目錄中都包含一個(gè)header.html文件。
相關(guān)文章
Ubuntu 20.04 火狐瀏覽器無(wú)法播放視頻(缺少flash插件)的解決方法
這篇文章主要介紹了Ubuntu 20.04 火狐瀏覽器無(wú)法播放視頻(缺少flash插件)的解決方法,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
Ubuntu20的tzselect設(shè)置時(shí)間失效的問(wèn)題,樹(shù)莓派服務(wù)器(推薦)
這篇文章主要介紹了Ubuntu20的tzselect設(shè)置時(shí)間失效的問(wèn)題,樹(shù)莓派服務(wù)器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
關(guān)于linux服務(wù)器下vsftpd的一些問(wèn)題
針對(duì)我自己本身出現(xiàn)的問(wèn)題,將高人與我的QQ聊天記錄整理了一份,然后再加上實(shí)際的操作.終于讓我大徹大悟.現(xiàn)在與大家狠狠的分享這位高人的成果.2010-06-06
Linux 6 下編譯安裝 PHP 5.6實(shí)例詳解
這篇文章主要介紹了Linux 6 下編譯安裝 PHP 5.6實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
Centos7.4服務(wù)器安裝apache及安裝過(guò)程出現(xiàn)的問(wèn)題解決方法
這篇文章主要介紹了Centos7.4服務(wù)器安裝apache及安裝過(guò)程出現(xiàn)的問(wèn)題解決方法,結(jié)合實(shí)例形式分析了Centos7.4服務(wù)器安裝apache相關(guān)命令、配置操作及端口占用等常見(jiàn)問(wèn)題解決方法,需要的朋友可以參考下2019-03-03
wamp2.2e 64位 curl 開(kāi)啟不了的解決辦法
這篇文章主要介紹了wamp2.2e 64位 curl 開(kāi)啟不了的解決辦法,需要的朋友可以參考下2014-12-12
Linux內(nèi)核設(shè)備驅(qū)動(dòng)之proc文件系統(tǒng)筆記整理
今天小編就為大家分享一篇關(guān)于Linux內(nèi)核設(shè)備驅(qū)動(dòng)之proc文件系統(tǒng)筆記整理,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12

