shtml 引入html 让Apache支持shtml实现include文件解析

什么是shtml?

     使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。

什么是SSI?

  SSI是Server Side Include的首字母缩略词。包含有嵌入式服务器方包含命令的 HTML 文本。在被传送给浏览器之前,服务器会对 SHTML 文档进行完全地读取、分析以及修改。SSI就是在HTML文件中,可以通过注释行调用的命令或指针。SSI具有 强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。 网站维护常常碰到的一个问题是,网站的结构已经固定,却为了更新一点内容而不得不重做一大批网页。SSI提供了一种简单、有效的方法来解决这一问题,它将 一个网站的基本结构放在几个简单的HTML文件中(模板),以后我们要做的只是将文本传到服务器,让程序按照模板自动生成网页,从而使管理大型网站变得容易。

      应用它可以把网站中一些公共区域做成独立的页面,然后利用此技术嵌入到其它需要此区域内容的页面中去。 

     机制: 
     SSI机制是动态包含,而不是静态生成,是由web服务器比如apache在收到用户的请求时,如果解析到其中有SSI包含指令时,自动取出被包含的页面嵌入到被请求的页面中一起当做一个整体的页面发送给用户,对用户来说根本不知道服务器做了啥,只是知道得到一个完整的页面。 
     由SSI工作机制我们知道,包含动作是在每次用户请求页面时发生,所以如果被包含的页面内容有变化,也能实时的反应出来,正因为如此,就很容易用来实现静态页面的动态嵌入,我们就可以用来实现网站中全站公共区域,或是出现很多的重复区域内容发布成一个独立静态页面,然后在需要的地方用SSI指令包含进去,比如象全站的头部和尾部,全站最新新闻等等。


1.确认加载include.so模块

[email protected]:mods-available# a2enmod include 
Enabling module include.
Run '/etc/init.d/apache2 restart' to activate new configuration!

2.INCLUDE命令:
apache默认不支持SSI,可以通过修改配置文件来使其支持
搜索AddType text/html .shtml的位置,打开以下注释
AddType text/html .shtml  
AddOutputFilter INCLUDES .shtml 
同时需要找到Options Indexes FollowSymLinks,在其后添上Includes
以上表示支持shtml的include命令,如果还想支持html,则需改为
AddType text/html .shtml  .html
AddOutputFilter INCLUDES .shtml .html

[email protected]:sites-enabled# vim www.dave.com 
<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	ServerName  www.dave.com
	DocumentRoot /var/www
	<Directory /var/www>
	        Options -Indexes FollowSymLinks MultiViews +ExecCGI Includes
                AddType text/html .shtml .html
                AddOutputFilter INCLUDES .shtml .html
                DirectoryIndex index.shtml index.html index.htm
		AllowOverride None
		Order allow,deny
		allow from 10.0.0.0/8 192.168.0.0/16
	
</VirtualHost>


3.放入测试页

[email protected]:sites-enabled# ls -l /var/www/test/
total 48
-rw-r--r-- 1 www-data www-data  2545 2013-01-05 15:48 footer.html
-rw-r--r-- 1 www-data www-data 25653 2013-01-05 16:20 test.shtml
-rw-r--r-- 1 www-data www-data 15291 2013-01-05 15:48 topbar.html
[email protected]:test# mole test.shtml
......
		<!--#include virtual="/test/topbar.html"-->
		
        <div class="container">
            <div id="myFlashBox" class="flash_main">
                <div id="flashcontent">
                    
                    
					<div id="flashTextContent">
.....
                <!--#include virtual="/test/footer.html"-->
.....
 

绑定hosts 访问www.dave.com  查看源代码,已正常解析成代码


你可能感兴趣的:(shtml 引入html 让Apache支持shtml实现include文件解析)