Server Side Includes
Server Side Includes (ืขืืจืืช: ืืืืืืช ืฆื-ืฉืจืช; ืืจืืฉื ืชืืืืช: SSI) ืืื ืฉืคื ืืืคืืจืฉืช ืขื ืฉืจืช ืืคื ืืืื ืืจื ื, ืฉื ืืขืื ืืืคืืืช ืืคื HTML ืกืืืืื ืืืขื ืืืชืจ ืืื ืืืืื. ืืืจืชื ืฉื SSI ืืื ื ืืืคืื ืืคื HTML ืืืืฉืืื ืฆื-ืฉืจืช ืืืืื, ืืื ืืื ืื ืืชืืื ื-ASP, ื-PHP ืืืฉืคืืช ืืืืืช, ืืื ืืืคืฉืจ ืืืืืช ืืืืข ืืื ืืื ืืืฉืจืช ืืชืื ืืคื ื-HTML.
ืืืคื HTML ืฉืืืืืืื ืืื ืชืื SSI ืืฉ ืืืจื-ืืื ืกืืืืช shtml ืื shtm. ืืฉืจืช IIS ื ืืืื ืื ืืกืืืืช stm.
ืืืกืืืจืื
[ืขืจืืืช ืงืื ืืงืืจ | ืขืจืืื]SSI ืืืคืืขื ืืจืืฉืื ื ืืฉืจืช NCSA HTTPd, ืฉืืื ื ืืชืคืชื ืฉืจืช ืืคืืฆ'ื. ืฉืจืช IIS ืฉื ืืืงืจืืกืืคื ืืืืฉ ืืช SSI ืืืืคื ืืืื ืืื ืฉื NCSA HTTPd ืขื ืืื ืจืืื ISAPI ืืฉื Ssinc.dll. ืืฉืจืช ืืคืืฆ'ื ืงืืืืืช ืืืจืืืช SSI ื ืืกืคืืช ืขื ืืื ืฉื-NCSA HTTPd ืื-IIS, ืืืืื ืืช "xSSI" ืขื ืืื ืงืจื ืืชืืื ื ืืคืืฆ'ื (ืืฉืืืืช x ืืื ืงืืฆืืจ ืฉื extended - ืืืืืืช ืฆื ืฉืจืช ืืืจืืืืช). ืื ืืืืืฉืืช ืืืืืื ืืจืืื ืืฉืจืช ืืฉื mod_include.
ืชืืืืจ ืืืจืืืช SSI
[ืขืจืืืช ืงืื ืืงืืจ | ืขืจืืื]ืืชืืืืจ ืืืืื ืขืืืจ ืืืจืืืช SSI ืืื:
<!-- # directive parameter1="value" parameter2="value" ... -->
ืืืจืืืช SSI ื ืืฆืืืช ืืชืื ืืขืจืืช HTML, ืื ืฉืื ืืืจืื ืืกืืืืช ืื ืชืขืืื, ืื ืฉืืงืืืฅ ืื ืืคืืจืฉ ืขื ืืื ืืคืจืฉ ืึพSSI ืืื, ืื ืืคืจืืขื ืืืจืืืช ืึพSSI ืืชืฆืืื ืืืคืืคื. ืื ืืืจืื ืืืจืืืช ืืืขืจืช HTML, ืืืชืืื ืกืืื ืกืืืืืช (#), ืืืื ืืืืจืื ืกืื ืืืืจืื, ืืืืจืื ืจืฉืืืช ืืคืจืืืจืื ืฉื ืืืืจืื ืืืชืืื ืืืืื ืืคืจืืืจืื ืฉื ืชืื HTML - ืฉื ืืคืจืืืจ, ืกืืื ืฉืืื, ืืขืจืื ืฉื ืืคืจืืืจ.
ืฉืจืช NCSA HTTPd
[ืขืจืืืช ืงืื ืืงืืจ | ืขืจืืื]ืชืืืืจ SSI ืฉื ืฉืจืช ืื ืืื ืืชืืืืจ ืืืกืืกื, ืฉืขืืื ืืชืืกืกืื ืฉืืจ ืืืืฉืืืื ืฉื SSI.
ืืืจืืืช ื-SSI
[ืขืจืืืช ืงืื ืืงืืจ | ืขืจืืื]ืงืืืืืช 6 ืืืจืืืช SSI ืืฉืจืช ืื:
- ืืืจืืช include โ ืืืจืื ืื ืืืืืื ืืช ืืืฃ ืฉื ืืชื ืื ืืคืจืืืจ ืืชืื ืืืฃ ืฉืื ืืืืจืื ื ืืฆืืช. ืืืื ืืืืจืื ืื ืคืืฆื ืืืืชืจ ืืฉืืืืฉ ื-SSI, ืืขืืื ืืขืฆื ืืืืกืก ืฉื ืืืื ืืืืืื.
ื ืืชื ืืืฉืชืืฉ ืืืืจืื ืื ืืื ืขื ืืื ืืฉื ื ืคืจืืืจืื:- virtual โ ืืืกืคืง ื ืชืื ืืืจืืืืื ืืงืืืฅ:
<!-- #include virtual="/virtual/path/to/file" --> - file โ ืืืกืคืง ื ืชืื ืืืกื ืืงืืืฅ ืฉื ืืฆื ืชืืช ืืชืืงืืื ืื ืืืืืช:
<!-- #include file="path/to/file" -->
- virtual โ ืืืกืคืง ื ืชืื ืืืจืืืืื ืืงืืืฅ:
- ืืืจืืช config โ ืืืจืื ืื ืืืืื ืืงืื ืฉืืืฉื ืคืจืืืจืื:
- errmsg โ ืงืืืข ืืืืขืช ืฉืืืื ืฉืชืืฉืื ืืืงืื ืืืงืจื ืฉื ืืฉื ืืคืืจืืฉ ืืืจืืืช ืืืืืืช ืฆื-ืืฉืจืช.
- timefmt โ ืงืืืข ืืช ืืืื ื ืืืจื ืืืฆืื ืฉื ืืื ืื ืืชืืจืืืื ืืฉืืืืฉ ืขื ืืืจืืืช echo ื-flastmode (ืจืื ืืืื).
- sizefmt โ ืงืืืข ืืช ืืืื ื ืืืจื ืืืฆืื ืฉื ืืืืื ืงืืฆืื ืืฉืืืืฉ ืขื ืืืจืืืช echo ื-fsize (ืจืื ืืืื).
- ืืืจืืช echo โ ืืืจืื ืื ืืงืืืช ืคืจืืืจ ืืื, ืืฉื var, ืืืืื ืฉื ืืฉืชื ื, ืืืฆืืื ืืช ืขืจืื. ืืฉืชื ื ืืกืืืื ืฉื SSI ืืคืืจืืื ืืืื.
- ืืืจืืช fsize โ ืืืจืื ืื ืืฆืืื ืืช ืืืื ืฉื ืืงืืืฅ ืื ืืชื ืืคืจืืืจ. ืืืื ืืงืืืฅ ืืืฆื ืืืจื ืฉืืืืืจื ืืืืจืืช ื-config (ืจืื ืืืขืื). ืืคืจืืืจืื ืืืื ืืืื ืฉื ืืืจืืช include (ืจืื ืืืขืื).
- ืืืจืืช flastmod โ ืืืจืื ืื ืืฆืืื ืืช ืชืืจืื ืืฉืื ืื ืืืืจืื ืฉื ืืงืืืฅ ืื ืืชื ืืคืจืืืจ. ืืชืืจืื ืืืฆื ืืืืคื ืฉืืืืืจ ืืืืจืืช ื-config (ืจืื ืืืขืื). ืืคืจืืืจืื ืืืื ืืืื ืฉื ืืืจืืช include (ืจืื ืืืขืื).
- ืืืจืืช exec โ ืืืจืื ืื ืืืฆืขืช ืคืงืืืช ืืขืืคืช ืคืงืืื (ืืืืืจ ืขื ืืขืจืืืช ืืืืกืกืืช ืืื ืืงืก) ืื ืชืืื ืืช CGI, ืืืฆืืื ืืช ืืืืืข ืฉืืืืืจื ืืชืืื ืืช ืื ืืคืงืืื. ืืคืจืืืจืื ืืืคืฉืจืืื ืื:
- cmd โ ืืืงืจื ืื ืชืืฆืข ืืขืืคืช-ืืคืงืืื /bin/sh ืืช ืืืจืืืช ืืงืื, ืืชืฆืื ืืช ืืชืืฆืื. ื ืืชื ืืืฉืชืืฉ ืืืฉืชื ื ืืกืืืื ืฉื SSI ืืคืงืืื ืื.
- cgi โ ืคืจืืืจ ืื ืืืื ื ืชืื ืืืจืืืืื ืืชืืื ืืช CGI. ืืืงืจื ืื ืืชืืื ืืช ืชืืืฆืข, ืืืงืื ืฉืื ืืืืื ืืืฃ ืื ืืืื (ืืืืื ืืืืจืืช include).
ืืฉืชื ื ืืกืืืื ืฉื SSI
[ืขืจืืืช ืงืื ืืงืืจ | ืขืจืืื]ืืืฉืชื ืื ืฉื ืืชื ืืืฉืชืืฉ ืืื ืืืืจืืืช ืืฉืื ืืช ืื ืืฉืชื ื ืืกืืืื ืฉื CGI (ืืืื, SERVER_NAME, QUERY_STRING, REMOTE_ADDR ืืื'), ืืืกืคืจ ืืฉืชื ืื ื ืืกืคืื, ืืืืืืื ืืช ืฉื ืืงืืืฅ ืื ืืืื (DOCUMENT_NAME), ืืชืืจืื ืืืงืืื ืฉื ืืฉืจืช, ืืขืื.
ืฉืจืช IIS
[ืขืจืืืช ืงืื ืืงืืจ | ืขืจืืื]ืืืืืฉ SSI ืฉื ืฉืจืช IIS ืืืื ืืช ืืืชื 6 ืืืจืืืช ืฉื ืฉืจืช NCSA HTTPd, ืืืชืืืืืช ืืืขื ืืืืืืช. ืื ืจืฉืืืช ืืฉืชื ื ืืกืืืื ืืืขื ืืื.
ืืฉืจืช IIS, ืืืจืืช exec ืืืืื ืืืฆืข ืื ืืคื ASP ืืืืฉืืื ISAPI, ืืื ืจืง ืืืฉืืื CGI ืืขืืจืช ืืคืจืืืจ cgi.
ืืืจืืช include ื ืืชื ืช ืืฉืืืืฉ ืื ืืืคื ASP. ืืืจืืช ืฉืืื ืืช ืืคืจืฉ ASP ืืืฆืข ืืช ืืืืืื, ืืื ืื ืืข SSI, ืืืืจ ืงืฉืืจ ืืงืฉืจ ืืืืง ืึพSSI, ืืืฆืืื ืืชืืขืื ืฉืื. ืืืจืืืช SSI ืืืจืืช ืืื ื ืคืืขืืืช ืืืคื ASP.
ืฉืจืช ืืคืืฆ'ื
[ืขืจืืืช ืงืื ืืงืืจ | ืขืจืืื]ืฉืจืช ืืคืืฆ'ื, ืื ืืื ืชืืื ืืื ืืืืจืืืช ืืืกืืกืืืช ืฉื ืฉืจืช NCSA HTTPd, ืื ืืจืืื ืืืชื ืืืกืคืจ ืืืคื ืื, ืืืืคื ืืช ืืืจืกื ืฉืื ืืืืืืืช ืฆื-ืืฉืจืช ืืืื ืืืชืจ ืืฉืคืช ืชืื ืืช, ืืื ืจืง ืืืื ืืืืืืช ืืืืข (ืืคืื ืืืจืื ืื ืขืจืื ืืืคืืื ืื) ืืชืื ืืฃ ื ืชืื.
ื ืืชื ืืืืง ืืช ืืืจืืืืช ืฉื ืฉืจืช ืืคืืฆ'ื ืืฉื ืืื: ืฉืืคืืจืื ืืชืืกืคืืช ืืืืจืืืช ืงืืืืืช, ืืืืจืืืช ืืืฉืืช. ืืืื ืคืืจืื:
- ืชืืกืคืืช ืืืืจืืืช ืงืืืืืช
- ืืืืจืืช config ื ืืชื ืืืืกืืฃ ืื ืคืจืืืจ ืืฉื echomsg ืฉืืืืืจ ืืืืขื ืฉืชืืฆื ืืืงืื ืืืงืจื ืฉื ื ืืกืืื ืืืฆืื ืืฉืชื ื ืฉืืื ื ืงืืื ืืขืืจืช ืืืจืืช echo.
- ืฉืืืืฉ ืืคืจืืืจ virtual ืฉื ืืืจืืช include ืืืคืฉืจ ืืืืืช ืชืกืจืืื CGI ืขื ืคืจืืืจืื, ืืื ืจืง ืืคื HTML.
- ืืืจืืืช ืืืฉืืช
ืฉืจืช ืืคืืฆ'ื ืืืกืืฃ 6 ืืืจืืืช ืืืฉืืช ืขื ืืื ืฉืืจืฉ ืืฉืจืช NCSA HTTPd: ืืืจืืช printenv, ืืืจืืช set, ืืืืจืืืช if.- ืืืจืืืช printenv ืืืคืืกื ืืช ืื ืืืฉืชื ืื ืืืืืืจืื ืืืช ืขืจืืืื. ืืื ืืื ืืงืืืช ืคืจืืืจืื.
- ืืืจืืช set ืืงืืืช ืฉื ื ืคืจืืืจืื: var ื-value ืืงืืืขืช ืืช ืขืจืื ืฉื ืืืฉืชื ื ืฉืฉืื ืืืืืจ ื-var ืืขืจื ืืืชืื ื-value. ืืืืืจ, ืืฉืืจื ืืืื ืชืงืืข ืืช ืขืจืื ืฉื ืืืฉืชื ื name ืืขืจื joey.
<!-- #set var="name" value="joey" --> - ืืืจืืืช if
ืืื ืื 4 ืืืจืืืช ืฉืืฉืืฉืืช ืืื ืืืฆืืจืช ืืื ื ืชื ืื. ืืืจืืช if ืคืืชืืช ืชื ืื, ืืืจืืืช elif ืืืืืจืืช ืืงืจืื ื ืืกืคืื ืืขืืจ ืืชื ืื ืืจืืฉืื ื, ืืืจืืช else ืืืืืจื ืืงืจื ืฉืื ืืฃ-ืืื ืืืชื ืืื ืื ืืชืงืืื, ืืืืจืืืช endif ืกืืืจืช ืืช ืืื ื ืืชื ืื. ืืืืืื:<!-- #if expr='"$DOCUMENT_URI" = "/foo.shtml"' --> file is foo.shtml <!-- #elif expr='"$DOCUMENT_URI" = "/bar.shtml"' --> file is bar.shtml <!-- #elif expr='"$DOCUMENT_URI" = "/moo.shtml"' --> file is moo.shtml <!-- #else --> I don't know which file is this <!-- #endif -->
ืงืืข ืืงืื ืืืขืื ืืฆืื ืืืืขื ืฉืื ื ืืืชืื ืืฉื ืืงืืืฅ ืื ืืืฉื.
ืงืืฉืืจืื ืืืฆืื ืืื
[ืขืจืืืช ืงืื ืืงืืจ | ืขืจืืื]- ืชืืขืื ืขืืืจ SSI ืืฉืจืช NCSA HTTPd - ืืื ืืืืช
- ืชืืขืื ืขืืืจ ืฉืจืช IIS SSI ืขืืืจ IIS 6.0 - ืืืชืจ MSDN
- ืขืืืจ ืฉืจืช ืืคืืฆ'ื 2.4: ืืืจืื ืืืืจืืช ืขื SSI โข ืืืืืื mod_include