ืœื“ืœื’ ืœืชื•ื›ืŸ

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 - ืฉื ื”ืคืจืžื˜ืจ, ืกื™ืžืŸ ืฉื•ื•ื”, ื•ืขืจื›ื• ืฉืœ ื”ืคืจืžื˜ืจ.

ืชื—ื‘ื™ืจ SSI ืฉืœ ืฉืจืช ื–ื” ื”ื•ื ื”ืชื—ื‘ื™ืจ ื”ื‘ืกื™ืกื™, ืฉืขืœื™ื• ืžืชื‘ืกืกื™ื ืฉืืจ ื”ื™ื™ืฉื•ืžื™ื ืฉืœ SSI.

ืงื™ื™ืžื•ืช 6 ื”ื•ืจืื•ืช SSI ื‘ืฉืจืช ื–ื”:

  • ื”ื•ืจืืช include โ€“ ื”ื•ืจืื” ื–ื• ืžื›ืœื™ืœื” ืืช ื”ื“ืฃ ืฉื ื™ืชืŸ ืœื” ื›ืคืจืžื˜ืจ ื‘ืชื•ืš ื”ื“ืฃ ืฉื‘ื• ื”ื”ื•ืจืื” ื ืžืฆืืช. ื–ื•ื”ื™ ื”ื”ื•ืจืื” ื”ื ืคื•ืฆื” ื‘ื™ื•ืชืจ ื‘ืฉื™ืžื•ืฉ ื‘-SSI, ื•ืขืœื™ื” ื‘ืขืฆื ืžื‘ื•ืกืก ืฉื ื”ื˜ื›ื ื•ืœื•ื’ื™ื”.
    ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื•ืจืื” ื–ื• ื™ื—ื“ ืขื ืื—ื“ ืžืฉื ื™ ืคืจืžื˜ืจื™ื:
    • virtual โ€“ ื•ืœืกืคืง ื ืชื™ื‘ ื•ื™ืจื˜ื•ืืœื™ ืœืงื•ื‘ืฅ:
      <!-- #include virtual="/virtual/path/to/file" -->
      
    • file โ€“ ื•ืœืกืคืง ื ืชื™ื‘ ื™ื—ืกื™ ืœืงื•ื‘ืฅ ืฉื ืžืฆื ืชื—ืช ื”ืชื™ืงื™ื™ื” ื”ื ื•ื›ื—ื™ืช:
      <!-- #include file="path/to/file" -->
      
  • ื”ื•ืจืืช 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), ื”ืชืืจื™ืš ื”ืžืงื•ืžื™ ืฉืœ ื”ืฉืจืช, ื•ืขื•ื“.

ืžื™ืžื•ืฉ 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 -->
      

ืงื˜ืข ื”ืงื•ื“ ื“ืœืขื™ืœ ื™ืฆื™ื’ ื”ื•ื“ืขื” ืฉื•ื ื” ื‘ื”ืชืื ืœืฉื ื”ืงื•ื‘ืฅ ื‘ื• ื™ื•ืฉื.

ืงื™ืฉื•ืจื™ื ื—ื™ืฆื•ื ื™ื™ื

[ืขืจื™ื›ืช ืงื•ื“ ืžืงื•ืจ | ืขืจื™ื›ื”]