SSI使用詳解

2021-12-30 01:47:12 字數 3715 閱讀 8200

什麼是ssi?

ssi是英文server side includes的縮寫,翻譯成中文就是伺服器端包含的意思。從技術角度上說,ssi就是html檔案中,可以通過注釋行呼叫的命令或指標。ssi 具有強大的功能,只要使用一條簡單的ssi 命令就可以實現整個**的內容更新,動態顯示時間和日期,以及執行shell和cgi指令碼程式等複雜的功能。ssi 可以稱得上是那些資金短缺、時間緊張、工作量大的**開發人員的最佳幫手。

ssi最初在ncsa伺服器平台上推出,在apache伺服器中得到擴充套件和加強,目前已經可以在幾乎所有的伺服器上執行。本文將主要結合apache伺服器介紹ssi的使用方法。

如何啟動ssi?

在apache伺服器下,可以通過直接編輯伺服器配置檔案或者在需要使用ssi的目錄中建立.htaccess檔案啟動ssi。具體來說,過程如下:

1.伺服器配置檔案

如果使用者具有對伺服器配置檔案的訪問許可權,可以通過編輯檔案access.conf和srm.conf啟動ssi。

首先使用telnet遠端登入伺服器,找到配置檔案的存放目錄。一般來說,apache伺服器的配置檔案都被儲存在「/usr/local/etc/httpd/conf」目錄下。使用任何一種文字編輯器開啟檔案srm.conf,找到以下幾行:

使用者的配置檔案中可能沒有上述的注釋指令行,但是只要找到以addtype開頭的兩行並且去掉每一行最前面的「#」符號即可。

儲存所做的修改,然後再開啟檔案access.conf。使用者需要在檔案中找到設定documentroot(根檔案)的部分。一般來說該段文字如下,但是不排除和標籤之間還包含其它設定內容。

# this should be changed to whatever you set documentroot to.

# this may also be "none", "all", or any combination of "indexes",

# "includes", or "followsymlinks"

options indexes followsymlinks includes

如果使用者不希望執行指令碼或shell命令,可以在options選項行中加入關鍵字includesnoexec,這樣可以允許ssi,但是不能執行cgi或指令碼命令。(注:最新版本的apache伺服器只有乙個配置檔案httpd.conf,以上所提到的內容都已經被包含在該檔案中)

2.建立檔案.htaccess

如果使用者不能直接訪問伺服器配置檔案,可以使用檔案編輯器建立乙個名為.htaccess的檔案。注意,檔名前一定要有符號「.」,這樣伺服器才能知道該檔案是隱藏檔案,從而提高檔案的安全性,避免錯誤操作。在.htaccess檔案中需要加入以下三行文字:

完成之後可以把.htaccess檔案上傳到服務端的相應目錄,該檔案對所有子目錄有效。如果使用者希望在目錄級上禁止cgi或shell命令,可以在.htaccess檔案中的options選項行加入關鍵字includesnoexec。

3.使用.shtml還是.html?

任何包含ssi的檔案在下傳到客戶端之前,都必須經過伺服器的解析過程。雖然從某種程度上這樣會增加伺服器的負載,但是除非使用者的**每天有幾百萬的訪問使用者,某則伺服器的效能不會有明顯的下降。不過,如果不是需要在每個頁面都使用ssi的話,確實沒有必要讓伺服器解析每乙個頁面。如果使用者只希望在幾個特殊頁面中使用ssi,可以將檔案的字尾名改為.shtml,這樣伺服器就可以只解析包含ssi的.shtml檔案。另一方面,如果有多個頁面使用了ssi,但是使用者不希望使用.shtml的字尾名時,可以在.htaccess檔案中使用以下命令列:

addtype text/x-server-parsed-html .html

ssi語法

ssi在使用時遵循以下格式:

其中,directive是向伺服器傳送的指令名稱,parameter是指令的操作物件,而value則是使用者希望得到的指令處理結果。

所有的ssi命令都是以「」。

ssi命令包含六大類指令以及各自的引數,具體如下:

directives

parameters

config

errmsg, timefmt, sizefmt

include

virtual, file

echo

varfsize

file

flastmod

file

exec

cmd, cgi

下面我們將逐一進行介紹。

1.config命令

config命令主要用於修改ssi的預設設定。其中:

errmsg:設定預設錯誤資訊。為了能夠正常的返回使用者設定的錯誤資訊,在html檔案中errmsg引數必須被放置在其它ssi命令的前面,否則客戶端只能顯示預設的錯誤資訊,而不是由使用者設定的自定義資訊。

timefmt:定義日期和時間的使用格式。timefmt引數必須在echo命令之前使用。

顯示結果為:

wednesday, april 12, 2000

也許使用者對上例中所使用的%a %b %d感到很陌生,下面我們就以**的形式總結一下ssi中較為常用的一些日期和時間格式。

格式說明

例項%%% 

%a一周七天的縮寫形式

thu%a

一周七天

thursday

%b月的縮寫形式

apr%b

月april

%d乙個月內的第幾天

13%d

mm/dd/yy日期格式

04/13/00

%h小時(24小時制,從00到23)

01%i

小時(12小時制,從00到11)

01%j

一年內的第幾天,從01到365

104%m

一年內的第幾個月,從01到12

04%m

一小時內的第幾分鐘,從00到59

10%p

am或pm

am%r

12小時制的當地時間,格式為%i:%m:%s am | pm

01:10:18 am

%s一分鐘內的第幾秒,從00到59

18%t

24小時制的%h:%m:%s時間格式

01:10:18

%u一年內的第幾個星期,從00到52,以星期天作為每個星期的第一天

15%w

一星期內的第一天,從0到64%w

一年內的第幾個星期,從00到53,以星期一作為每個星期的第一天

15%y

年的縮寫形式,從00到99

00%y

用四位數字表示一年

2000

%z時區名稱

mdt  sizefmt:決定檔案大小是以位元組、千位元組還是兆位元組為單位表示。如果以位元組為單位,引數值為「bytes」;對於千位元組和兆位元組可以使用縮寫形式。同樣,sizefmt引數必須放在fsize命令的前面才能使用。

SSI使用詳解

1 config命令 config命令主要用於修改ssi的預設設定。其中 errmsg 設定預設錯誤資訊。為了能夠正常的返回使用者設定的錯誤資訊,在html檔案中errmsg引數必須被放置在其它ssi命令的前面,否則客戶端只能顯示預設的錯誤資訊,而不是由使用者設定的自定義資訊。timefmt 定義日...

shtml網頁SSI使用詳解

shtml是一種用於ssi技術的檔案。也就是server side include ssi 伺服器端包含指令。一些web server有ssi功能的話。會對shtml檔案特殊招待。先掃一次shtml檔案看沒有特殊的ssi指令存在。有就按web server設定規則解釋ssi指令。解釋完後跟一般htm...

Nginx與SSI使用入門

nginx engine x 是乙個高效能的http和反向 伺服器,也是乙個imap pop3 smtp伺服器。它具有很多非常優越的特性 在連線高併發的情況下,nginx是apache伺服器不錯的替代品。ssi是server side inclde的縮寫,是一種基於服務端的網頁製作技術,就是服務端包...