在對(duì)shtml的了解中,我們可以知道,shtml可以使用<#include>,這樣的話(huà),我們就可以直接將自己的廣告代碼或者自己要推薦的東西引用過(guò)來(lái).
shtml和asp 有一些相似,以shtml命名的文件里,使用了ssi的一些指令,就像asp中的指令,你可以在SHTML文件中寫(xiě)入SSI指令,當(dāng)客戶(hù)端訪(fǎng)問(wèn)這些 shtml文件時(shí),服務(wù)器端會(huì)把這些SHTML文件進(jìn)行讀取和解釋?zhuān)裇HTML文件中包含的SSI指令解釋出來(lái).
最后的那句最有用了,簡(jiǎn)單點(diǎn)說(shuō).shtml在表面上看和html沒(méi)啥太大的區(qū)別,但咱們用起來(lái)呢,那就不一樣了.在對(duì)shtml的了解中,我們可以知道,shtml可以使用<#include>,這樣的話(huà),我們就可以直接將自己的廣告代碼或者自己要推薦的東西引用過(guò)來(lái).使用方法如下:
在后綴為shtml或者shtm的文檔中間,你想要的位置插入 這個(gè)標(biāo)記,就能將info.htm的文件引入了.上面我有提到,我要做一個(gè)小說(shuō)站.大家都知道小說(shuō)站最好是生成靜態(tài),來(lái)減輕服務(wù)器的負(fù)載,我的站一直都是生成靜態(tài)的,咱們使用shtm在引入廣告之后,最最重要的一點(diǎn)就是,可以在info.htm中加入咱們要推薦的小說(shuō).大家都知道,做小說(shuō)的要在自己不重新生成代碼的情況下來(lái)更換頁(yè)面的推薦內(nèi)容的話(huà),只有用到JS,但是搜索引擎的蜘蛛碰到JS是直接會(huì)忽略的,我們使用JS來(lái)推薦內(nèi)容的話(huà).可以對(duì)搜索優(yōu)化不太好,但是,如果咱們使用shtm的話(huà),那就不一樣的.因?yàn)榭梢允褂肧SI指令.只需要使用include引入info.htm,然后將需要推薦的小說(shuō)或者其他的信息直接寫(xiě)入info.htm中,這樣.只要是shtm并且引入了info.htm的頁(yè)面將會(huì)跟著改變,而且搜索引擎依舊會(huì)抓取.廢話(huà)這么多主要是我感覺(jué)這個(gè)東西很好,用起來(lái)也很方便.所以呢.啰啰嗦嗦的講了半天,實(shí)際是上告訴做小說(shuō)站的哥們,如果用shtm還是不錯(cuò)的選擇.
不知道寫(xiě)了這么多.大家明白不?
APACHE開(kāi)啟shtml,修改srm.con:AddType text/x-server-parsed-html .shtml 將只對(duì).shtml擴(kuò)展名的文件解析SSI指令
Windows好像服務(wù)器默認(rèn)就是支持的,只只需在IIS的”Web服務(wù)擴(kuò)展”里設(shè)置”在服務(wù)器端的包含文件”為”允許” 即可.
如果你要獲得關(guān)于一些html指令的信息,請(qǐng)繼續(xù)往下看
程序代碼:
<!-– 指令名稱(chēng)=”指令參數(shù)”>
<!-– 指令名稱(chēng)=”指令參數(shù)”>
如 程序代碼:
<!–#include file=”info.htm”–>
<!–#include file=”info.htm”–>
說(shuō)明:
1.<!– –>是HTML語(yǔ)法中表示注釋?zhuān)?dāng)WEB服務(wù)器不支持SSI時(shí),會(huì)忽略這些信息。
2.#include 為SSI指令之一。
3.file 為include的參數(shù), info.htm為參數(shù)值,在本指令中指將要包含的文檔名。
注意:
1.<!–與#號(hào)間無(wú)空格,只有SSI指令與參數(shù)間存在空格。
2.上面的標(biāo)點(diǎn)=”",一個(gè)也不能少。
3.SSI指令是大小寫(xiě)敏感的,因此參數(shù)必須是小寫(xiě)才會(huì)起作用。
SSI指令使用詳解
#echo 示范
作用:
將環(huán)境變量插入到頁(yè)面中。
語(yǔ)法:
程序代碼:
<!–#echo var=”變量名稱(chēng)”–>
本文檔名稱(chēng):程序代碼:
<!–#echo var=”DOCUMENT_NAME”–>
現(xiàn)在時(shí)間:程序代碼:
<!–#echo var=”DATE_LOCAL”–>
<!–#echo var=”DATE_LOCAL”–>
你的IP地址是程序代碼:
<!–#echo var=”REMOTE_ADDR”–>
#include 示范
作用:
將文本文件的內(nèi)容直接插入到文檔頁(yè)面中。
語(yǔ)法:
程序代碼:
<!–#include file=”文件名稱(chēng)”–>
<!–#include virtual=”文件名稱(chēng)”–>
file 文件名是一個(gè)相對(duì)路徑,該路徑相對(duì)于使用 #include 指令的文檔所在的目錄。被包含文件可以在同一級(jí)目錄或其子目錄中,但不能在上一級(jí)目錄中。如表示當(dāng)前目錄下的的nav_head.htm文檔,則為file=”nav_head.htm”。
virtual 文件名是 Web 站點(diǎn)上的虛擬目錄的完整路徑。如表示相對(duì)于服務(wù)器文檔根目錄下hoyi目錄下的nav_head.htm文件;則為virtual=”/hoyi/nav_head.htm”
參數(shù):
file 指定包含文件相對(duì)于本文檔的位置
virtual 指定相對(duì)于服務(wù)器文檔根目錄的位置
注意:
1、文件名稱(chēng)必須帶有擴(kuò)展名。
2、被包含的文件可以具有任何文件擴(kuò)展名,我覺(jué)得直接使用htm擴(kuò)展名最方便,微軟公司推薦使用 .inc 擴(kuò)展名(這就看你的愛(ài)好了)。
示例:
程序代碼:
<!–#include file=”nav_head.htm”–>將頭文件插入到當(dāng)前頁(yè)面
<!–#include file=”nav_foot.htm”–>將尾文件插入到當(dāng)前頁(yè)面
#flastmod 和#fsize 示范
作用: #flastmod 文件最近更新日期
#fsize 文件的長(zhǎng)度
語(yǔ)法:
程序代碼:
<!–#flastmod file=”文件名稱(chēng)”–>
<!–#fsize file=”文件名稱(chēng)”–>
參數(shù):
file 指定包含文件相對(duì)于本文檔的位置 如 info.txt 表示當(dāng)前目錄下的的info.txt文檔
virtual 指定相對(duì)于服務(wù)器文檔根目錄的位置 如 /hoyi/info.txt 表示
注意:
文件名稱(chēng)必須帶有擴(kuò)展名。
示例:
程序代碼:
<!–#flastmod file=”news.htm”–>
將當(dāng)前目錄下news.htm文件的最近更新日期插入到當(dāng)前頁(yè)面
程序代碼:
<!–#fsize file=”news.htm”–>
將當(dāng)前目錄下news.htm的文件大小入到當(dāng)前頁(yè)面
#exec 示范
作用:
將某一外部程序的輸出插入到頁(yè)面中??刹迦隒GI程序或者是常規(guī)應(yīng)用程序的輸入,這取決于使用的參數(shù)是cmd還是cgi。
語(yǔ)法:
程序代碼:
<!–#exec cmd=”文件名稱(chēng)”–>
<!–#exec cgi=”文件名稱(chēng)”–>
參數(shù):
cmd 常規(guī)應(yīng)用程序
cgi CGI腳本程序
示例:
程序代碼:
<!–#exec cmd=”cat /etc/passwd”–>將會(huì)顯示密碼文件
<!–#exec cmd=”dir /b”–>將會(huì)顯示當(dāng)前目錄下文件列表
<!–#exec cgi=”/cgi-bin/gb.cgi”–>將會(huì)執(zhí)行CGI程序gb.cgi。
<!–#exec cgi=”/cgi-bin/access_log.cgi”–>將會(huì)執(zhí)行CGI程序access_log.cgi。
注意:
從上面的示例可以看出,這個(gè)指令相當(dāng)方便,但是也存在安全問(wèn)題。
禁止方法:
.Apache,將access.conf中的”O(jiān)ptions Includes ExecCGI”這行代碼刪除;
.在IIS中,要禁用 #exec 命令,可修改 SSIExecDisable 元數(shù)據(jù)庫(kù);
#config
作用: 指定返回給客戶(hù)端瀏覽器的錯(cuò)誤信息、日期和文件大小的格式。
語(yǔ)法:
程序代碼:
<!–#config errmsg=”自定義錯(cuò)誤信息”–>
<!–#config sizefmt=”顯示單位”–>
<!–#config timefmt=”顯示格式”–>
參數(shù):
errmsg 自定義SSI執(zhí)行錯(cuò)誤信息,可以為任何你喜歡的方式。
sizefmt 文件大小顯示方式,默認(rèn)為字節(jié)方式(“bytes”)可以改為千字節(jié)方式(“abbrev”)
timefmt 時(shí)間顯示方式,最靈活的配置屬性。
示例: 顯示一個(gè)不存在文件的大小
程序代碼:
<!–#config errmsg=”服務(wù)器執(zhí)行錯(cuò)誤,請(qǐng)聯(lián)系管理員阿川,謝謝!”–>
<!–#fsize file=”不存在的文件.htm”–>
以千字節(jié)方式顯示文件大小
程序代碼:
<!–#config sizefmt=”abbrev”–>
<!–#fsizefile=”news.htm”–>
以特定的時(shí)間格式顯示時(shí)間
程序代碼:
<!–#config timefmt=”%Y年/%m月%d日 星期%W 北京時(shí)間%H:%M:%s,%Y年已過(guò)去了%j天 今天是%Y年的第%U個(gè)星期”–>
<!–#echo var=”DATE_LOCAL”–> 顯示今天是星期幾,幾月,時(shí)區(qū)
<!–#config timefmt=”今天%A, %B ,服務(wù)器時(shí)區(qū)是 %z,是”–>
<!–#echo var=”DATE_LOCAL”–>