查看完整版本: shtml网页SSI使用详解

snowfox373 2007-11-27 16:18

shtml网页SSI使用详解

shtml使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。+p[)V'Hg6G-Z4R;]

1i B(\)I2H ? b       1、Config命令
hP;P2Xa Ii {A9[XN'I
  Config命令主要用于修改SSI的默认设置。其中: f:ZXU-]M(qlg M
%k!a%Cy2i }+B4h#l
  Errmsg:设置默认错误信息。为了能够正常的返回用户设定的错误信息,在HTML文件中Errmsg参数必须被放置在其它SSI命令的前面,否则客户端只能显示默认的错误信息,而不是由用户设定的自定义信息。 (r` cf5x#hr;Uq;J
3M&J-scen2v
  <!--#config errmsg="Error! Please email [email]webmaster@web.com[/email] -->  Q9l*\| jh E}

H+|HX V,k   Timefmt:定义日期和时间的使用格式。Timefmt参数必须在echo命令之前使用。[code]<!--#config timefmt="%A, %B %d, %Y"--> J/g:J7}c.q
  <!--#echo var="LAST_MODIFIED" -->[/code]显示结果为:
rN*I4j N.W/fbp2j`
} p,d-PH     Wednesday, April 12, 2007  
x MEN8u*jT FE@?+R1aW/C-J
  也许用户对上例中所使用的%A %B %d感到很陌生,下面我们就以表格的形式总结一下SSI中较为常用的一些日期和时间格式。
W NNK,b/z;R-V
|5Fg]5r t   Sizefmt:决定文件大小是以字节、千字节还是兆字节为单位表示。如果以字节为单位,参数值为"bytes";对于千字节和兆字节可以使用缩写形式。同样,sizefmt参数必须放在fsize命令的前面才能使用。[code] <!--#config sizefmt="bytes" --> 7FY:YF$F
    <!--#fsize file="index.html" --> [/code]2、Include命令
VU"[qNF1}Ri5z N{]
n5C ]E/m~ N7^   Include命令可以把其它文档中的文字或图片插入到当前被解析的文档中,这是整个SSI的关键所在。通过Include命令只需要改动一个文件就可以瞬间更新整个站点!
4\9L [#PQ{*eacIH
%P G\6Q5i9Ng/g)z x   Include命令具有两个不同的参数:
)] Q8k wk'b1N:XF v d4}hNZ[D
  Virtual:给出到服务器端某个文档的虚拟路径。例如: 6wiJHM2aD&lY/s
ld3H"m#H&h
    <!--#include virtual="/includes/header.html" -->  
a#kS[VL
,qQM;~r Y7c   File:给出到当前目录的相对路径,其中不能使用"../",也不能使用绝对路径。例如:
J7geg I#^Nu L
gY7g3y,Ow%@     <!--#include file="header.html" --> _wC ]$WM*TY
[$Hu8la0U5P'g\
  这就要求每一个目录中都包含一个header.html文件。
rj B;HA"}5B9v
$pk Y%{)K9{   3、Echo命令 eA'e)E}w p

Q'WI(W A2l;X4lE   Echo命令可以显示以下各环境变量:
_![z#lo
p3`eoc}4P~   DOCUMENT_NAME:显示当前文档的名称。 i7QM2zSkKl4P
.b%Co7JN4Q5{o
    <!--#echo var="DOCUMENT_NAME" -->
3L ["]LIuVV 9Wc N3z#E{$u8\ K
      显示结果为:
@"M8J(Z!bD} 2}d#N.un]
    index.html Q,b;]/Up$b

r9V)~!_7cf:M`j   DOCUMENT_URI:显示当前文档的虚拟路径。例如:A'N5tvq

L/N#X kM A0@J9H6bgk     <!--#echo var="DOCUMENT_URI" --> -` obQ7z w m&T

*X;bF.VeO?   显示结果为:
0H"F"_.l.]j"s
^tg QOfF+v$~L     /YourDirectory/YourFilename.html  "VL[,c8vzV
8vT hs f3v
  随着网站的不断发展,那些越来越长的URL地址肯定会让人头疼。如果使用SSI,一切就会迎刃而解。因为我们可以把网站的域名和SSI命令结合在一起显示完整的URL,即:
d.cd[ @@`1g_ 6?oL(n1q?
  http://YourDomain<!--#echo var="DOCUMENT_URI" -->  &WR8pEg

u6?8S)`&S a   QUERY_STRING_UNESCAPED:显示未经转义处理的由客户端发送的查询字串,其中所有的特殊字符前面都有转义符"\"。例如:
2@[W{| L0G {:L0k'p
  <!--#echo var="QUERY_STRING_UNESCAPED" -->
4oK~,S(]nd
O4z]qK4|:N   DATE_LOCAL:显示服务器设定时区的日期和时间。用户可以结合config命令的timefmt参数,定制输出信息。例如:
F6m3}2w+KdC
.~"V:h!y K K2^%|   <!--#config timefmt="%A, the %d of %B, in the year %Y" -->8V&e0K}c^*E[
    <!--#echo var="DATE_LOCAL" --> ,oM7@+?9rEI,fE+Z

p{d _0pl5tfRD/p   显示结果为: #]5UC-Qx5I%p

*bMcG|9[(h   Saturday, the 15 of April, in the year 2007
guw\*o c)m%Q8UI:M/~ o/}3|;wa u:gg
  DATE_GMT:功能与DATE_LOCAL一样,只不过返回的是以格林尼治标准时间为基准的日期。例如: D UWi xq
5QHP%^!DZ.hq
  <!--#echo var="DATE_GMT" --> W3}#T)A __/q'WSI
f)j#xq"N`(A9W
  LAST_MODIFIED:显示当前文档的最后更新时间。同样,这是SSI中非常实用的一个功能,只要在HTML文档中加入以下这行简单的文字,就可以在页面上动态的显示更新时间。
1IW tAb_[:ge A
Rq;JP@j*t9Z Wx   <!--#echo var="LAST_MODIFIED" -->
NAb5h!CzG/J2\
o mx,\w!y"I IN   CGI环境变量 :@V3tZy#L!`4{
^$A-Ta~ N:hY
  除了SSI环境变量之外,echo命令还可以显示以下CGI环境变量:
gC ulH,UE[.m 6ai1Q6}Z"U/l~G'm
    SERVER_SOFTWARE:显示服务器软件的名称和版本。例如:
~r)bI.^(t~_8|E     <!--#echo var="SERVER_SOFTWARE" -->
Xd TU4R)]1U     SERVER_NAME: 显示服务器的主机名称,DNS别名或IP地址。例如: CJGCM&^D0g
    <!--#echo var="SERVER_NAME" -->8Bq9g&u0F7mA
    SERVER_PROTOCOL:显示客户端请求所使用的协议名称和版本,如HTTP/1.0。例如:
YIuc%Qp~4H?#@     <!--#echo var="SERVER_PROTOCOL" -->IgLR$C }se
    SERVER_PORT:显示服务器的响应端口。例如:wq` d5[
    <!--#echo var="SERVER_PORT" -->
^;W K._w     REQUEST_METHOD:显示客户端的文档请求方法,包括GET, HEAD, 和POST。例如:
^ J{'o/`     <!--#echo var="REQUEST_METHOD" -->hs^ZR6@2A8TwYa
    REMOTE_HOST:显示发出请求信息的客户端主机名称。
#f]_uc;zM ^     <!--#echo var="REMOTE_HOST" -->
.ij+K!n]r'c,c     REMOTE_ADDR:显示发出请求信息的客户端IP地址。p:b5t$aK UV u
    <!--#echo var="REMOTE_ADDR" -->
8Fs*[2V mD     AUTH_TYPE:显示用户身份的验证方法。
*Ri6Q`;}+uF     <!--#echo var="AUTH_TYPE" -->
Nh8Eo+xDECk     REMOTE_USER:显示访问受保护页面的用户所使用的帐号名称。qN$xiyk D
    <!--#echo var="REMOTE_USER" --> %qC~Q NP@
$x}~&zHa'Nz(e:s
      4、Fsize:显示指定文件的大小,可以结合config命令的sizefmt参数定制输出格式。 :ny'z$ZI)s PR!J

n.o!c/^@)vE)ph }     <!--#fsize file="index_working.html" -->
#XQGb-r
/k"NTDa8t/V i$G |C   5、Flastmod:显示指定文件的最后修改日期,可以结合config 命令的timefmt参数控制输出格式。 |Gmw B9O

dB?/F3S9S8ja;O     <!--#config timefmt="%A, the %d of %B, in the year %Y" -->
t,zo{|1Yi u0A     <!--#flastmod file="file.html" -->
4e'GJZ8?3P3v[B2mA
*tr%k.B3z6J7}oot   这里,我们可以利用flastmod参数显示出一个页面上所有链接页面的更新日期。方法如下: :e"{ Pv"p0_

3VU6Keof8U     <!--#config timefmt=" %B %d, %Y" -->
Wjl6_!oI8M     <A HREF="/directory/file.html">File</A>
_k2s P*z'A1Wp     <!--#flastmod virtual="/directory/file.html" -->
)_KRw7E     <A HREF="/another_directory/another_file.html">Another File</A>
p^:l5mVky-B     <!--#flastmod virtual="/another_directory/another_file.html" -->
&`Lo J]e1B
,p*ba%] lu1~   显示结果为:
7Q\9GU@1`u o i
xFF.bl]O!?&O%q$E     File April 19, 2007
@+|}9b(}FiQk     Another File January 08, 2007  
H1y%o}jh
a|}%tY?H,}T(b\iV   6、Exec
iS ~9P/w3] p'`T!F!u%e2`j/w
  Exec命令可以执行CGI脚本或者shell命令。使用方法如下:
mXs T_Ne!V
k,Lr J2X+]    Cmd:使用/bin/sh执行指定的字串。如果SSI使用了IncludesNOEXEC选项,则该命令将被屏蔽。
)p*nQk;s.MP Qa#_C7m2iBsp
   Cgi:可以用来执行CGI脚本。例如,下面这个例子中使用服务端cgi-bin目录下的counter.pl脚本程序在每个页面放置一个计数器:
|U7iOH%E8z
"}$A![ RX3W    <!--#exec cgi="/cgi-bin/counter.pl" -->
页: [1]
查看完整版本: shtml网页SSI使用详解
查看完整版本: shtml网页SSI使用详解