什么是shtml呢?
使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。
什么是SSI?
SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针。SSI具有 强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。 网站维护常常碰到的一个问题是,网站的结构已经固定,却为了更新一点内容而不得不重做一大批网页。SSI提供了一种简单、有效的方法来解决这一问题,它将 一个网站的基本结构放在几个简单的HTML文件中(模板),以后我们要做的只是将文本传到服务器,让程序按照模板自动生成网页,从而使管理大型网站变得容易。
shtml来include网页文件Apache2.2 (httpd.conf文件)配置
1、 去掉AddType text/html .shtml ,AddOutputFilter INCLUDES .shtml前面注释
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
2、查找Options Indexes FollowSymLinks 在后面加上INCLUDES
注意,SSI确实可以利用shell来执行命令,这个功能是极度危险的,因为它会执行任何包含在exec
标记中的命令。如果用户有可能修改你的网页内容,那么你一定要关闭这个功能。可以在Options
指令中加上IncludesNOEXEC
参数,以关闭exec
功能,同时又保留SSI。
<Directory />
# Options FollowSymLinks
# AllowOverride None
# Order deny,allow
# Deny from all
Options FollowSymLinks INCLUDES IncludesNOEXEC
AllowOverride None
</Directory>
3、重新启动apache ,ok你的shtml就可以加载页面了。
4、用include
命令包含页面。include
元素能按file
属性或virtual
属性判断应该包含的文件。file
属性是一个相对于当前目录的文件路径,即不能是一个绝对路径(以"/"开头)或包含"../"的路径。virtual
属性可能更有用,它是一个相对于被提供的文档的URL ,可以以"/"开头,但必须与被提供的文档位于同一服务器上。
<!--#include virtual="/footer.html" -->