 |
|
 |
FAQ - Server Side Includes
- What are
Server-Side Includes?
- How do I use
SSI?
- What
directives are available?
- What
extended SSI elements are available?
- What SSI
environment variables available?
- What CGI
environment variables can I use with SSI?
- Where can I
get more information about Server-Side Includes?
1. What are server side includes?
Server-side includes (SSIs) are simple, HTML-embedded directives that
instruct the web server to include data in the HTML document. As a
shorthand alternative to CGI, server-side includes can be handy.
2. How do I use SSI?
First you must create a page with a .shtm or .shtml
extention! Then SSI is easily implemented into your web page by
using the following syntax or directives:
<!--#directive parameter="value"-->
Directives can have
more than one parameter, and multiple parameters are separated by white
space.
3. What directives are available?
The valid SSI directives are as follows:
echo
Syntax:
echo var="environment-variable"
Echo inserts the value of one or more
SSI environment variables.
include
Syntax: include
file|virtual="path"
The include directive inserts the text of another document, specified
either as a file or a virtual file. Path must be relative to the current
document in the case of a file, or it can be a virtual path. For
example:
<!--#include file="sample.html"--> <!--#include
virtual="/virtual/sample.html"-->
fsize
Syntax:
fsize file="path"
The fsize directive inserts
the size of the file specified
by path, in bytes. For example:
This file is
<!--#fsize file="example.ps"--> bytes.
flastmod
Syntax:
flastmod file="path"
Similar to fsize, flastmod inserts
the modification date for the file
specified by path. For example:
This file was last modified on <!--#flastmod file="example.html"-->.
config
Syntax: config
errmsg|sizefmt|timefmt="string"
You can use the config directive to modify the default SSI behavior.
The parameters are as follows:
errmsg: Sets the default error message.
For example:
<!--#config errmsg="Error: Try
again."-->
sizefmt: Sets the format for file size
data returned by the fsize directive.
The string for this parameter is either
"bytes" for file sizes in bytes, or
"abbrev" for file sizes rounded
to the nearest kilobyte. For example:
<!--#config sizefmt="abbrev"-->
timefmt: Sets the format for dates and times
returned by the flastmod directive and the DATE_LOCAL and DATE_GMT
variables.
The possible values for this parameter are as follows:
|
Format
Code |
Description |
| %a |
Abbreviated day of the week, such as
"Sun" for Sunday |
| %A |
Unabbreviated day of the week |
| %b |
Abbreviated month, such as "Jan" for
January |
| %B |
Unabbreviated month |
| %d |
Two-digit, numerical day of the
month, such as "01" . |
| %D |
Numerical month, day, and year, such
as "01/24/97" |
| %e |
Numerical day, such as "1" |
| %H |
24-hour clock hour, such as "17"
|
| %I |
12-hour clock hour, such as "11"
|
| %j |
Numerical day of the year, such as
"278" |
| %m |
Numerical month, such as "11" |
| %M |
Minutes, such as "08" |
| %p |
am or pm |
| %r |
Time, such as "08:23:17 am" |
| %S |
Seconds, such as "56" |
| %T |
24-hour time, such as "23:54:56"
|
| %U |
Week of the year, such as "47"
|
| %w |
Numerical day of the week, such as
"0" for Sunday and "7" for Saturday |
| %y |
Year of the current century, such as
"97" |
| %z |
Abbreviated time zone, such as "PST"
|
| skip=n |
Skips the next n rules in a
sequence if the current rule matches |
| S=n |
Same as "skip" |
| env=VARIABLE:VALUE |
Sets the environment variable
VARIABLE to the value VALUE |
| E=VARIABLE:VALUE |
Same as "env" |
printenv
Syntax: printenv
This directive prints a complete list
of all existing SSI variables and
their values. It has no attributes.
For example:
<!--#printenv-->
set
Syntax: set var="variable"
value="value"
This directive sets the value of an environment variable. For
example:
<!--#set var="country" value="United
States"-->
4. What extended SSI elements are available?
Our server implements Extended SSI, which includes flow control
elements much like the ones used in programming languages. With flow
control, you can create more sophisticated SSI scripts.
There are four flow control elements:
<!--#if expr="test-condition"--> <!--#elif
expr="test-condition"--> <!--#else--> <!--#endif-->
The test-condition is one of the following:
|
Test
Condition |
Description |
| string |
True if the string is not empty
|
| sring1=string2 |
True if string1 matches
string2 |
| string1!=string2
|
True if string1
does not match string2 |
| (test-condition) |
True if test-condition is true |
| !test-condition |
True if test-condition is false
|
| test-condition1 &&
test-condition2 |
True if both
test-condition1 and test-condition2 are true
|
| test-condition1 ||
test-condition2 |
True if either
test-condition1 or test-condition2 is true
|
5. What SSI environment variables available?
DOCUMENT_NAME
The filename of the current HTML
document. For example:
This file is called
<!--#echo var="DOCUMENT_NAME"-->.
DOCUMENT_URL
The URL of the current file. For example:
This document is located at
<!--#echo var="DOCUMENT_URL"-->.
QUERY_STRING_UNESCAPED
An unencoded query string whose metacharacters are escaped with a
backslash (\).
DATE_LOCAL
The local date and time. For example:
Here in San Diego, it is now <!--#echo var="DATE_LOCAL"-->.
DATE_GMT
The current Greenwich Mean Time. For example:
The current time is <!--#echo var="DATE_GMT"-->
GMT.
LAST_MODIFIED
The date and time when the current
file was last modified. For example:
I last modified this page on
<!--#echo var="LAST_MODIFIED"-->.
6. What CGI environment variables can I use
with SSI?
SERVER_SOFTWARE=Stronghold/2.0
The name and version number of the server software
SERVER_NAME=host
The host being addressed in this request, which may be the main host
or a virtual host, either as a fully-qualified domain name or an IP
address
HTTP_HOST=host
The same as SERVER_NAME
HTTP_ACCEPT=MIME-type[, MIME-type, MIME-type . . .]
One or more MIME types that the client can accept
HTTP_USER_AGENT=name/version (platform)
The name, version number, and platform of the client software
REMOTE_HOST=host
The hostname or IP number of the client host or proxy server that
originated the request
REMOTE_PORT=port
The client-side port number that originated the request
REMOTE_ADDR=IP
The IP number of the client host
REMOTE_USER=username
The remote username, if the script is subject to basic authentication
REMOTE_IDENT=ident
The remote username as supplied by identd, if available
SERVER_PROTOCOL=protocol/version
The protocol and version number used to send the request, which
Stronghold also uses in its response in order to ensure compatibility
with the client
REQUEST_METHOD=method
The method used in this request, such as GET or POST
AUTH_TYPE=method
The authentication method used in this request, if any
CONTENT_TYPE=MIME-type
The MIME type of any data attached to the request header
CONTENT_LENGTH=n
The size, in bytes, of any data attached to the request header
SCRIPT_NAME=path/to/script
The URI of the requested script
SCRIPT_FILENAME=absolute/path/to/script
The absolute path to the requested script
SCRIPT_URI=method://host/path/to/script
The URI of the requested script
SCRIPT_URL=path/to/script
The URL of the requested script
QUERY_STRING=string
The query-string for this transaction,
embedded in the requested URL
7. Where can I get more information about
Server-Side Includes?
More information on Server-Side Includes can be found at http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html

|
 |