Browsed by
Tag: SSI

Apache解析SHTML配置(SSI)

Apache解析SHTML配置(SSI)

修改Apache配置文件httpd.conf:

1. AddType部分去掉这两段注释:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml #如果包含html文件,则把shtml改成html

2.下面是我机子上配制的虚拟目录
NameVirtualHost   www.xing.com
<VirtualHost www.xing.com:80>
DocumentRoot F:\xing
ServerName www.xing.com
</VirtualHost>

<Directory "F:\xing">
Options Indexes FollowSymLinks Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
AllowOverride None
Order allow,deny
Allow from all
</Directory>

3.例子如下:
aa.html:
测试中
<!--#include file="test.htm"-->
测试中
test.htm
<a href="http://www.huaxiazhixing.com">华夏之星</a>

4,运行aa则显示结果如下:
测试中 华夏之星 测试中

二、SHTML精简教程

你可以在SHTML文件中写入SSI指令,当客户端访问这些shtml文件时, 服务器端会把这些SHTML文件进行读取和解释,把SHTML文件中包含的SSI指令解释出来。
比如:你可以在SHTML文件中用SSI指令引用其他的 html文件(#include ),服务器传送给客户端的文件,是已经解释的SHTML不会有SSI指令。它实现了HTML所没有的功能,就是可以实现了动态 的SHTML,可以说是HTML的一种进化吧。像新浪的新闻系统就是这样的,新闻内容是固定的但它上面的广告和菜单等就是用#include引用进来的。

目前,主要有以下几种用用途: 更多请参考:http://www.javaeye.com/topic/306216

1、显示服务器端环境变量<#echo>

本文档名称:
<!--#echo var="DOCUMENT_NAME"-->
现在时间:
<!--#echo var="DATE_LOCAL"-->
显示IP地址
<!--#echo var="REMOTE_ADDR"-->

2、将文本内容直接插入到文档中<#include>

<!--#include file="文件名称"-->

<!--#include virtual="文件名称"-->

file 文件名是一个相对路径,该路径相对于使用 #include 指令的文档所在的目录。被包含文件可以在同一级目录或其子目录中,但不能在上一级目录中。如表示当前目录下的的nav_head.htm文档,则为 file="nav_head.htm"。

virtual 文件名是 Web 站点上的虚拟目录的完整路径。如表示相对于服务器文档根目录下hoyi目录下的nav_head.htm文件;则为virtual="/hoyi/nav_head.htm"

3、显示WEB文档相关信息<#flastmod><#fsize>(如文件制作日期/大小等)

文件最近更新日期:
<!--#flastmod file="文件名称"-->
文件的长度:
<!--#fsize file="文件名称"-->

4、直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)

<!--#exec cmd="文件名称"-->

<!--#exec cgi="文件名称"-->

将某一外部程序的输出插入到页面中。可插入CGI程序或者是常规应用程序的输入,这取决于使用的参数是cmd还是cgi。

5、设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)

6、高级SSI<XSSI>可设置变量使用if条件语句。