SSI学习(二)

来源:互联网 发布:js改变input的属性 编辑:程序博客网 时间:2024/05/04 10:34

1、SSI指令

#config:指定返回到客户端浏览器的错误消息、日期和文件大小所使用的格式。
#echo:在 HTML 页中插入环境变量的值。
#exec:运行一个应用程序或一条 shell 命令并将输出插入到 HTML 页中。
#flastmod:将文件修改日期插入到 HTML 页中。
#fsize:将文件大小插入到 HTML 页中。
#include:在 HTML 或 ASP 页中包含文件。
因为包含 SSI 指令的文件需要特殊处理,所以必需给 SSI 文件一个 SSI 文件扩展名。
默认的扩展名为 .stm、.shtm 和 .shtml。但是有的SSI指令可以在其他文件中使用。

2、APACHE开启SSI

加载SSI模块
SSI使用的是mod_include的动态系统对象,一般默认的情况安装的情况下都会安装,Linux下可以通过apachectl -l
查看是否包括mod_include.o文件。如果没有,那么需要重新编译apache。对于win32版的apache,简单地查看
httpd.conf中LoadModule include_module modules/mod_include.so行是否注释状态,如果是,去掉# 
配置httpd.conf
使.shtml扩展名的文件启用SSI 
去掉以下配置的注释
#AddType text/html .shtml#AddOutputFilter INCLUDES .shtml
开启包含功能
找到主机DOCUMENT_ROOT目录配置下 
Options Indexes FollowSymLinks 
修改为: 
Options Indexes FollowSymLinks Includes 
需要注意的是,ssi可以利用shell来执行命令,因此这个功能是有危险的,它会执行任何包含在exec标记中的命令,如果你的用户有权限修改你的网页内容,建议把该功能关闭。当然你还可以加上IncludesNOEXEC参数,来关闭exec功能,同时又保留SSI。此时改为: Options Indexes FollowSymLinks INCLUDES IncludesNOEXEC

3、demo测试

在DocumentRoot文件夹下新建两个页面:
index.shtml
Time:   <!--#echo var="DATE_LOCAL" -->   <br>ServerName: <!--#echo var="SERVER_NAME" var="DOCUMENT_URI" --><br>ENV:<!--#printenv --><br><!--#set var="cond" value="true" --><!--#echo var="cond" --><br><!--#if expr="cond='true'" -->    condition is true<!--#else -->    condition is false<!--#endif --><br><!--#include virtual="header.html" -->

header.html
head页面被包含进来

通过浏览器访问:http://localhost:9999/index.shtml即可查看结果






1 0
原创粉丝点击