Server Side Includes (SSI) is a simple to use server-side scripting language, whose primary use is including the contents of one file into another one dynamically or executing of CGI scripts.
A couple of important guidelines you need to follow:
1) SSI commands always begin with <!--# and end with --> just like:
<!--#directive parameter="value"-->There have to be quotes or space in front of -->
2) The web page that adds the SSI instruction to include another page or program MUST end with .shtml or .sht rather than .html or .htm.
Some examples of SSI:
1) If you want to insert a file into another one, you can use the command include virtual. The URL to the page you want to insert must be relative to the current web page rather than a full URL. For example:
<!--#include virtual="file.txt"-->This command includes the contents of file.txt in your file. file.txt and the SSI file must reside in the same folder - notice how this SSI instruction uses a *relative* URL instead of a FULL URL? This is very important to keep in mind when using SSI. And if your file.txt is in a subfolder named my_ssi, you have to add it following way:
2) If you want to execute a CGI script (in this case it is a Perl script) and include its output to your webpage, use the following code:
3) Printing the size of a file named file.html residing in your subdirectory directory is very easy:
4) <!--#flastmod file="directory/file.html"-->prints the last modification date of the specified file.
5) Useful command for debugging:
<!--#printenv -->It prints out a listing of all existing variables and their values.
You can easily define and use variables in your SSI scripts. For example, the following command defines the variable "PI" and assigns a value of "3,14159265" to it:
<!--#set var="PI" value="3,14159265"-->Use the following command in case you want to print out the value of PI:
In addition to the variables in the standard CGI environment, these are available for the echo command, for if and elif, and to any program invoked by the document.
DATE_GMT - The current date in Greenwich Mean Time
DATE_LOCAL - The current date in the local time zone
DOCUMENT_NAME - The filename (excluding directories) of the document requested by the user
DOCUMENT_URI - The (%-decoded) URL path of the document requested by the user
LAST_MODIFIED - The last modification date of the document requested by the user
QUERY_STRING - The information which follows the ? in the URL which referenced this script. This is the query information.
<!--#echo var="LAST_MODIFIED"-->prints the last modification date of the current file.
7) Flow Control Elements
The basic flow control elements are:
The endif element ends the if element and is required.