您的位置:首页 > 其它

SSI学习(二)

2014-11-03 10:08 141 查看

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即可查看结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: