今天浏览网页时,打开一个网页发现直接显示了源代码,随之把页面补全,.php .html .htm都试过但都提示server not found,最后输入shtml,又一次出来了源代码。那么确定此页面属于.shtml页面。
用IE浏览器打开,正常,无奈了,初步认为是firefox浏览器设定问题,查找各种设定,没有找到与此相关的。无奈,开始在网上搜索相关解决办法,无果。那么只能熟悉shtml的工作原理。
查找shtml文档,发现shtml要想被apache服务器执行,必须对apache相应做配置上的修改,针对我的ubuntu本地机。有三条内容需要修改。
1. AddType text/html .shtml。作用:规定apache把.shtml文件传输给客户端的时候用html的方式显示。
2.AddOutPutFilter INCLUDES .shtml 作用:提示服务器遇到.shtml文件把内容交给mod_include处理。
3. Options Indexes FollowSymLinks MultiViews +Includes 作用:要求Apache在htdocs子目录里执行 server-side includes 程序,也就是mod_includes模块的加载。
但是至此还是不知道问题出在哪里?随后用wget –save-headers ,看到得到的文件头信息中有一行:content-type:text/plain。那么问题就出在这里,这里应该为/text/html才是正确的。那么应该是17ok的服务器配置上把AddType那一行写错了。
随后在自己的机器上把text/html改为text/plain。问题和17ok上的一样。
ssi总结:1.apache配置上应该需要加载mod_includes模块。
2.可以让html页面也调用ssi模块,那么加一行 AddOutPutFilter INCLUDES .htm,但是也许会影响效率,配置的时候自己考虑平衡点。
3.ssi有自己的很多语法规则,能调用到系统变量,得到很多文件信息,总之还是有不少功能,自己以前只知道include功能,真是汗~~~