apache 服务器
shtml 能包含 php文件吗? 现在可以包含html
<!--#include file="info.php"-->
<!--#exec cgi="info.php"-->
上面两个方法都报一样的错:
[an error occurred while processing this directive]
shtml 能包含 php文件吗? 现在可以包含html
<!--#include file="info.php"-->
<!--#exec cgi="info.php"-->
上面两个方法都报一样的错:
[an error occurred while processing this directive]
# AddOutputFilter INCLUDES .shtml 把这两行前面的#去掉 。 然后搜索“Options Indexes FollowSymLinks” 在搜索到的那一行后面添加“ Includes” 即将该行改变为 Options Indexes FollowSymLinks Includes 熟悉apache manual的可能会觉得比较容易。 保存httpd.conf,重起apache即可 到此我们就完成了对Apache SSI的设置。 如何让你的IIS服务器支持SSI windows 2000: IIS里添加一个应用程序扩展名映射 可执行文件:C:\WINDOWS\system32\inetsrv\ssinc.dll 扩展名:shtml/shtm windows 2003 2003默认已经支持SSI(shtml文件),只需在IIS的"Web服务扩展"里设置"在服务器端的包含文件"为"允许" 即可IIS6.0对于SSI进行了一些改进,以前IIS5.0的一些程序迁移过后可能无法运用。 一个经常的出现问题是出现如下错误: "处理 SSI 文件时出错 - Error processing SSI file" 经过测试,以下做法会导致这个错误: 1、服务器物理路径使用中文名。 2、包含文件中使用中文名。 3、包含文件不存在。 4、被包含的文件再次包含使用中文名的文件。 该错误在Unicode编码时依旧,属于IIS的问题。 解决方法:对于使用SSI的站点物理和URL地址都全部使用英文。 shtml文件测试? 主体文件,比如命名为test.shtml,内容为(把head.html与foot.html文件包进来,与asp,jsp,php中的include相同) 以下是引用片段:<!--#include file="head.html"--><hr><b>你好,这是中间的内容</b><hr><!--#include file="foot.html"--> 页首文件,比如命名为head.html,内容为 以下是引用片段:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body><div style="background-color:#00CC66;boder:1px groove orange ">我是页首导航栏的公共信息</div> 页尾文件,比如命名为foot.html,内容为 以下是引用片段: 我是页尾版权信息</body></html> 然后运行web server,在地址栏中打开test.shtml文件,就会得到一个完整的页面,包括头与尾文件。 shtml中简单的SSI命令 SSI具有强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。比如我们修改上面提及的test.shtml文件,加入以下代码,将会显示服务器日期以及客户端IP等: 以下是引用片段:<font color=red> 本文档名称: <br> <!--#echovar="DOCUMENT_NAME"--> <br> 时区:<br> <!--#echovar="DATE_LOCAL"--> <br> 你的IP地址是: <br> <!--#echovar="REMOTE_ADDR"--><br> 今天是: & lt;!--#config timefmt="%A, %B %d, %Y"--> <!--#echovar="LAST_MODIFIED" --> <br> </font> SSI指令基本格式 程序代码:以下是引用片段:
<!-– 指令名称="指令参数">
<!--#include file="head.htm"--> 说明: 1.<!-- -->是HTML语法中表示注释,当WEB服务器不支持SSI时,会忽略这些信息。 2.#include 为SSI指令之一。 3.file 为include的参数, info.htm为参数值,在本指令中指将要包含的文档名。 注意: 1.<!--与#号间无空格,只有SSI指令与参数间存在空格。 2.上面的标点="",一个也不能少。 3.SSI指令是大小写敏感的,因此参数必须是小写才会起作用。详细可以查看SHTML详细教程 ,通过SHTML可以减轻许多工作负担哦。另外:shtml文件在网页服务器下运行才有效,直接用ie打开将被当作是文本文件。
<!--#include virtual ="/templates/templates.php?big=a&small=index"-->
其中,必须使用的是网站的绝对路径。