Server Side Includes
Support for server side includes (SSI) is standard with all web accounts. SSI allows you to create your HTML pages in a "modular" form, on-the-fly using the various tools below. When used
creatively, SSI can enable you to manage and edit your site's "look & feel" by changing only a few files. If your site is over 5 pages, you really should learn how to use SSI. SSI is NOT compatible with Microsoft FrontPage.
Including other files
You can dynamically include files within your .shtml documents using the following syntax. These files may be static HTML files,
static text files, freeCGI programs, or custom CGI programs. For Example:
<!--#include virtual="/header.shtml" -->
<!--#include virtual="/intro.shtml" -->
<!--#include virtual="/cgi-bin/myscript.cgi" -->
<!--#include virtual="/footer.shtml" -->
In the case above, you can see you'll create a single page for display to the web visitor using 3 subpages and the results of a script. This way, every page would call the same "header.shtml" and "footer.shtml" files, but only the "guts" of the page would change. This allows you to easily update the page by making only changes to the header or footer files, but this change would be repeated in every page that called them.
Global variables
The following useful variables are available from within SSI.
For a complete list of variables, please use the <!--#printenv --> command.
To place a variable within a .shtml file, use the following code:
<!--#echo var="VARIABLE_NAME" -->
Variable |
Meaning |
Sample |
HTTP_REFERER | The page from which the visitor came |
(none) |
HTTP_USER_AGENT | The visitor's browser software | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
SERVER_SOFTWARE | The version of the web server | Apache/2.4.41 (Ubuntu) |
SERVER_NAME | Your server name | opt2.net |
REMOTE_ADDR | The remote IP address of the visitor | 3.147.68.39 |
REMOTE_USER | The username (in a restricted area) | (none) |
QUERY_STRING | Any data following a '?' in the URL | |
DOCUMENT_NAME | The name of this file | ssi.shtml |
DATE_LOCAL | The current date (pacific time) | Thursday, 21-Nov-2024 02:11:25 PST |
DATE_GMT | The current date (GMT) | Thursday, 21-Nov-2024 10:11:25 GMT |
LAST_MODIFIED | "Last modified" date of the current file | Thursday, 29-Jun-2000 02:07:55 PDT |
File size
You can show the size of the current document within your .shtml file:
<!--#config sizefmt="bytes" --> (for size in bytes)
<!--#fsize -->
or
<!--#config sizefmt="abbrev" --> (for size in Kb or Mb)
<!--#fsize -->
Timestamps
Using SSI, you can place timestamps within your documents.
First, specify a time format using the variables below:
<!--#config timefmt="%I:%M:%S%p" -->
Then, print out a time using echo (above), i.e.:
<!--#echo var="DATE_LOCAL" -->
<!--#echo var="LAST_MODIFIED" -->
Code |
Meaning |
Sample |
%c | The time and date | Thursday, the 21 of Nov, 2024<br>02:11:25AM
|
|
|
%R | The time (hh:mm) | 02:11 |
%T | The time (hh:mm:ss) | 02:11:25 |
%r | The time (hh:mm:ss AM) | 02:11:25 AM |
%H | The hour (24-hour clock, 00-23) | 02 |
%k | The hour (24-hour clock, 0-23) | 2 |
%I | The hour (12-hour clock, 01-12) | 02 |
%l | The hour (12-hour clock, 1-12) | 2 |
%M | The minutes (00-59) | 11 |
%S | The seconds (00-59) | 25 |
%p | AM or PM | AM |
%s | The number of seconds since January 1, 1970 | 1732183885 |
%Z | The time zone | PST |
|
|
%D | The date | 11/21/24 |
%a | The abbreviated weekday name (Mon, Tue, ...) | Thu |
%A | The full weekday name (Monday, Tuesday, ...) | Thursday |
%w | The weekday number (0-6), 0=Sunday | 4 |
%B | The abbreviated month name (Jan, Feb, ...) | November |
%b | The full month name (January, February, ...) | Nov |
%m | The month of the year (01-12) | 11 |
%d | The day of the month (01-31) | 21 |
%e | The day of the month (1-31) | 21 |
%y | The 2-digit year | 24 |
%Y | The 4-digit year | 2024 |
%C | The century | 20 |
|
|
%j | The day of the year (001-366) | 326 |
%W | The week of the year (00-53) starting Monday | 47 |
Setting variables
You can set variables for use in later echo statements:
<!--#set var="VARIABLE_NAME" value="VARIABLE_VALUE" -->
You can then print these variables using the following syntax:
<!--#echo var="VARIABLE_NAME" -->
Parsing non-SSI file types
Only .shtml files should include SSI tags. In some cases, however, you may wish to have the webserver scan .html files for SSI tags as well. To do so, add the following line to the .htaccess file in your document root:
AddType text/x-server-parsed-html shtml html htm
Where shtml , html , and htm are file types to scan for SSI tags.
Use this with caution; on a busy site, this may lead to noticable performance degradation.
XSSI (eXtended Server Side Includes)
Opt2.Net uses the Apache webserver which supports the XSSI standard (the embedding of conditional statements within SSI). For more information on XSSI, or for the latest supported SSI enhancements, please visit the Apache webserver SSI documentation.
If you want to view how this page called the various functions and other files, Click Here to see the source code.
|