亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > 管理維護 > 正文

SSI使用詳解_負載集群教程

2024-09-10 14:21:10
字體:
來源:轉載
供稿:網友

您是否曾或正在為如何能夠在最短的時間內完成對一個包含上千個頁面的網站的修改而苦惱?那么能夠看一下本文的介紹,或許能夠對您有所幫助。


什么是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,找到以下幾行:


# if you want to use server side includes, or cgi outside

# scriptaliased directories, uncomment the following lines.

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


#addtype application/x-httpd-cgi .cgi


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


  保存所做的修改,然后再打開文檔access.conf。用戶需要在文檔中找到配置documentroot(根文檔)的部分。一般來說該段文本如下,但是不排除<directory>和</directory>標簽之間還包含其他配置內容。


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

<directory /usr/local/etc/httpd/htdocs>

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

# "includes", or "followsymlinks"

options indexes followsymlinks includes

</directory>


  假如用戶不希望執行腳本或shell命令,能夠在options選項行中加入關鍵字includesnoexec,這樣能夠允許ssi,但是不能執行cgi或腳本命令。(注:最新版本的apache服務器只有一個配置文檔httpd.conf,以上所提到的內容都已被包含在該文檔中)


2.創建文檔.htaccess


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


options indexes followsymlinks includes

addtype application/x-httpd-cgi .cgi

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


  完成之后能夠把.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"-->


  其中,directive是向服務器發送的指令名稱,parameter是指令的操作對象,而value則是用戶希望得到的指令處理結果。

  任何的ssi命令都是以"<!--#"開始,其中"<!—"和"#"之間不能有任何空格,否則服務器會把ssi命令當稱普通的文檔注釋處理,不會顯示出任何結果,也不會產生錯誤提示。此外,ssi命令中的"="兩邊不能有空格,右邊的值必須包含在雙引號內,后面能夠跟空格,最后是結束標簽"-->"。


ssi命令包含六大類指令連同各自的參數,具體如下:

 

directives

parameters


config

errmsg, timefmt, sizefmt


include

virtual, file


echo

var


fsize

file


flastmod

file


exec

cmd, cgi

 

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

 

1.config命令


config命令主要用于修改ssi的默認配置。其中:


  errmsg:配置默認錯誤信息。為了能夠正常的返回用戶設定的錯誤信息,在html文檔中errmsg參數必須被放置在其他ssi命令的前面,否則客戶端只能顯示默認的錯誤信息,而不是由用戶設定的自定義信息。


<!--#config errmsg="error! please email webmaster@mydomain.com -->


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


<!--#config timefmt="%a, %b %d, %y"-->


<!--#echo var="last_modified" -->


顯示結果為:


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到6

4


%w

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

15


%y

年的縮寫形式,從00到99

00


%y

用四位數字表示一年

2000


%z

時區名稱

mdt

 

  sizefmt:決定文檔大小是以字節、千字節還是兆字節為單位表示。假如以字節為單位,參數值為"bytes";對于千字節和兆字節能夠使用縮寫形式。同樣,sizefmt參數必須放在fsize命令的前面才能使用。


<!--#config sizefmt="bytes" -->


<!--#fsize file="index.html" -->


2.include命令


  include命令能夠把其他文檔中的文字或圖片插入到當前被解析的文檔中,是整個ssi的關鍵所在。通過include命令只需要改變一個文檔就能夠瞬間更新整個站點!


  include命令具備兩個不同的參數,假如使用錯誤的參數更新站點的話,不但達不到初衷,反而會得到一大堆的錯誤信息。


  virtual:給出到服務器端某個文檔的虛擬路徑。例如:


  <!--#include virtual="/includes/header.html" -->


  為了更加合理的組織站點的內容,用戶能夠在根目錄下創建includes子目錄來存放任何的包含文檔。virtual參數能夠通知服務器所要包含的是個虛擬文檔,即文檔和當前被解析的文檔不是位于同一個目錄,而是存放在其他目錄中。服務器會根據該參數的值找到根目錄下的includes子目錄。使用這種方法,用戶能夠把任何html文檔包含的文檔放在一個目錄中,而根據相互之間的關系把不同的頁面保存在不同的目錄或子目錄中。無論服務器解析哪一個文檔都能夠找到所包含的文檔,不會產生任何錯誤。


  但是這里有一個小問題需要解決。一般我們都會在頁面中加入一些title和meta標簽,假如我們規定任何的頁面都調用相同的頁眉文檔的話,就顯得很不靈活。用戶碰到這樣的問題時,能夠使用兩個包含文檔,一個配置title標簽前的內容,另一個配置meta標簽后的部分,而在兩個包含文檔之間則能夠添加任何定制內容。例如:


<!--#include virtual="/includes/header1.html" -->

<title>your page title</title>

<link rel = stylesheet href = "http://domain.com/styles/my.css" type = "text/css" >

<meta name = "description" content = " description of page">

<meta name = "keywords" content = "keywords for page" >

<!--#include virtual="/includes/header2.html" -->


這里放置頁面內容


<!--#include virtual="/includes/footer.html" -->


  從上我們能夠看出通過在頁面中包含頁眉和頁腳能夠大大減少站點更新的工作量。但是假如我們希望動態顯示一些內容,例如頁面的最后更新時間等該怎么辦呢?沒問題,我們能夠把包含文檔使用.html后綴保存,這樣就能夠在包含文檔中調用其他的包含文檔。


  file:給出到當前目錄的相對路徑,其中不能使用"../",也不能使用絕對路徑。例如:


  <!--#include file="header.html" -->


  這就需要每一個目錄中都包含一個header.html文檔。當然,采用這樣的方法并不比更新每一個頁面簡單多少,但是假如用戶只更新一、兩個文檔的話還是很方便的。例如,假如我們不希望讓一個對html不熟悉的人直接改變網站中的新聞頁面的話,能夠只讓他更新一個單獨的文本文檔,然后再把該文檔包含到hmtl文檔中,這樣即不會破壞原頁面,同時又更新了內容,兩全其美。

 

3.echo:


  echo命令能夠顯示以下各環境變量:


  document_name:顯示當前文檔的名稱。


  <!--#echo var="document_name" -->


  顯示結果為:


  index.html


  document_uri:顯示當前文檔的虛擬路徑。例如:


  <!--#echo var="document_uri" -->


  顯示結果為:


  /yourdirectory/yourfilename.html


  隨著網站的不斷發展,那些越來越長的url地址肯定會讓人頭疼。假如使用ssi,一切就會迎刃而解。因為我們能夠把網站的域名和ssi命令結合在一起顯示完整的url,即:


  http://yourdomain<!--#echo var="document_uri" -->


  query_string_unescaped:顯示未經轉義處理的由客戶端發送的查詢字串,其中任何的特別字符前面都有轉義符"/"。例如:


  <!--#echo var="query_string_unescaped" -->


  date_local:顯示服務器設定時區的日期和時間。用戶能夠結合config命令的timefmt參數,定制輸出信息。例如:


  <!--#config timefmt="%a, the %d of %b, in the year %y" -->

  <!--#echo var="date_local" -->


  顯示結果為:


  saturday, the 15 of april, in the year 2000


  date_gmt:功能和date_local相同,只但是返回的是以格林尼治標準時間為基準的日期。例如:


  <!--#echo var="date_gmt" -->


  last_modified:顯示當前文檔的最后更新時間。同樣,這是ssi中很實用的一個功能,只要在html文檔中加入以下這行簡單的文字,就能夠在頁面上動態的顯示更新時間。


  <!--#echo var="last_modified" -->

 

  cgi環境變量


  除了ssi環境變量之外,echo命令還能夠顯示以下cgi環境變量:


    server_software:顯示服務器軟件的名稱和版本。例如:


    <!--#echo var="server_software" -->


    server_name: 顯示服務器的主機名稱,dns別名或ip地址。例如:


    <!--#echo var="server_name" -->


    server_protocol:顯示客戶端請求所使用的協議名稱和版本,如http/1.0。例如:


    <!--#echo var="server_protocol" -->


    server_port:顯示服務器的響應端口。例如:


    <!--#echo var="server_port" -->


    request_method:顯示客戶端的文檔請求方法,包括get, head, 和post。例如:


    <!--#echo var="request_method" -->


    remote_host:顯示發出請求信息的客戶端主機名稱。


    <!--#echo var="remote_host" -->


    remote_addr:顯示發出請求信息的客戶端ip地址。


    <!--#echo var="remote_addr" -->


    auth_type:顯示用戶身份的驗證方法。


    <!--#echo var="auth_type" -->


    remote_user:顯示訪問受保護頁面的用戶所使用的帳號名稱。


    <!--#echo var="remote_user" -->

 

4.fsize:顯示指定文檔的大小,能夠結合config命令的sizefmt參數定制輸出格式。


<!--#fsize file="index_working.html" -->


5.flastmod:顯示指定文檔的最后修改日期,能夠結合config 命令的timefmt參數控制輸出格式。


<!--#config timefmt="%a, the %d of %b, in the year %y" -->

<!--#flastmod file="file.html" -->


  這里,我們能夠利用flastmod參數顯示出一個頁面上任何鏈接頁面的更新日期。方法如下:


<!--#config timefmt=" %b %d, %y" -->

<a href="/directory/file.html">file</a>

<!--#flastmod virtual="/directory/file.html" -->

<a href="/another_directory/another_file.html">another file</a>

<!--#flastmod virtual="/another_directory/another_file.html" -->


顯示結果為:


file april 19, 2000

another file january 08, 2000


  也許有的讀者會認為兩個鏈接就這么復雜,一點也不方便。其實,假如頁面上有20個或更多的鏈接,而且每個鏈接都定期更新的話,就能夠看出使用flastmod顯示修改日期的作用。

 

6.exec


exec命令能夠執行cgi腳本或shell命令。使用方法如下:


  cmd:使用/bin/sh執行指定的字串。假如ssi使用了includesnoexec選項,則該命令將被屏蔽。


  cgi:能夠用來執行cgi腳本。例如,下面這個例子中使用服務端cgi-bin目錄下的counter.pl腳本程式在每個頁面放置一個計數器:


<!--#exec cgi="/cgi-bin/counter.pl" -->

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级大片在线免费观看| 北条麻妃一区二区三区中文字幕| 51午夜精品视频| 中文字幕成人在线| 国产精品专区h在线观看| 日韩欧美成人区| 国内外成人免费激情在线视频| 久久精品亚洲热| 久久影视电视剧免费网站清宫辞电视| 久久久av一区| 久久综合九色九九| 久久69精品久久久久久国产越南| 亚洲国产高清福利视频| 国产精品扒开腿爽爽爽视频| 欧美性xxxx极品高清hd直播| 亚洲人成电影网站色…| 日韩在线播放av| 久久五月天色综合| 午夜精品一区二区三区在线视频| 国产成人久久久精品一区| 欧美丰满老妇厨房牲生活| 久久久久久久久综合| 久久精品99国产精品酒店日本| 欧美大奶子在线| 亚洲自拍欧美色图| 亚洲欧美在线看| 97视频在线观看视频免费视频| 青青草原一区二区| 久久男人资源视频| 97国产suv精品一区二区62| 国产精品扒开腿做| 欧美成人国产va精品日本一级| 欧美日韩中文字幕在线| 欧美成人免费大片| 91成人精品网站| 2018中文字幕一区二区三区| 亚洲香蕉伊综合在人在线视看| 精品国产1区2区| 俺去啦;欧美日韩| 3344国产精品免费看| 日韩精品久久久久久久玫瑰园| 欧美美女18p| 久久免费观看视频| 精品久久久精品| 欧美精品激情在线观看| 欧美色视频日本高清在线观看| 欧美日韩高清在线观看| 伊人成人开心激情综合网| 日韩av一区在线观看| 成人免费午夜电影| 欧美日韩在线观看视频小说| 欧美成人免费在线视频| 国产精品中文在线| 欧美电影院免费观看| 国产精品h在线观看| 亚洲人成五月天| 欧美成人一区二区三区电影| 欧美一级成年大片在线观看| 日韩成人av在线| 欧美乱大交做爰xxxⅹ性3| 日韩成人在线免费观看| 久久人人爽人人爽人人片亚洲| 视频直播国产精品| 中文字幕久久久av一区| 91精品91久久久久久| 中文字幕精品av| 国产成人高清激情视频在线观看| 日韩av片免费在线观看| 九九视频这里只有精品| 国产精品成人免费电影| 欧美视频二区36p| 国产精品久久久久久久美男| 久久精品国产欧美亚洲人人爽| 欧美国产亚洲精品久久久8v| 性日韩欧美在线视频| 欧美日韩在线影院| 亚洲欧美国产精品| 亚洲精品久久久久久久久久久久| 国产色综合天天综合网| 亚洲欧美日韩另类| 日本国产欧美一区二区三区| 91高潮精品免费porn| 国产成人jvid在线播放| 欧美中文在线免费| 欧美极品美女视频网站在线观看免费| 欧美激情视频一区二区| 国产成人久久久精品一区| 亚洲欧美日韩精品久久奇米色影视| 欧美老女人性视频| 欧美日韩人人澡狠狠躁视频| 91免费视频网站| 最近中文字幕日韩精品| 久久亚洲精品网站| 国产精品高精视频免费| 亚洲精品99999| 国产亚洲激情在线| 亚洲精品99久久久久中文字幕| 色悠悠国产精品| 久久久久久噜噜噜久久久精品| 久热在线中文字幕色999舞| 国产一区二区三区视频| 97在线观看免费高清| 欧美大片免费观看在线观看网站推荐| 中文字幕亚洲一区二区三区五十路| 91免费人成网站在线观看18| 亚洲美女性生活视频| 日本欧美一级片| 久久久久久久久久久亚洲| 欧美在线中文字幕| 国产精品久久久久久久久久东京| 色综合天天综合网国产成人网| 中日韩美女免费视频网站在线观看| 久久综合伊人77777尤物| 欧美性高潮在线| 97香蕉超级碰碰久久免费软件| 神马久久桃色视频| 欧美性精品220| 欧美国产日韩在线| 精品国产精品三级精品av网址| 深夜精品寂寞黄网站在线观看| 欧美中文在线字幕| 亚洲跨种族黑人xxx| 岛国av一区二区| 国产精品色婷婷视频| 久久精品中文字幕一区| 亚洲一区二区日本| 国产免费成人av| 亚洲精品自在久久| 成人免费在线网址| 亚洲大胆美女视频| 亚洲欧美日韩在线高清直播| 国产在线播放不卡| 欧美国产第二页| 久久精品视频导航| 亚洲免费人成在线视频观看| 亚洲精品一区二区网址| 91精品国产高清自在线| 日本免费在线精品| 亚洲一区二区精品| 欧日韩在线观看| 日韩av在线免播放器| 欧美激情久久久久| 在线日韩av观看| 国产精品久久久久久婷婷天堂| 国产不卡在线观看| 亚洲第一页自拍| 亚洲欧美日韩综合| 国产精品视频在线观看| 成人妇女免费播放久久久| 久久久久久999| 国产精品免费一区二区三区都可以| 日本欧美国产在线| 欧美裸体xxxx| 自拍偷拍亚洲欧美| 日韩精品在线视频观看| 欧美日韩在线观看视频| 精品福利樱桃av导航| 亚洲天堂一区二区三区| 成人动漫网站在线观看| 久久久99久久精品女同性| 欧美成人自拍视频| 亚洲女人天堂视频| 精品亚洲永久免费精品| 国产一区视频在线|