当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Apache、Nginx 服务配置服务器端包含(SSI)

    栏目:Linux/apache问题 时间:2018-09-28 13:35

    今天在给写新的sws安装包,测试程序采用了cmstop,其中安装有一项需要支持服务器端包含(ssi),下面教给大家如何让你的apache或者nginx支持。

    如果不知道什么是服务器端包含(ssi)点击后面的链接查看:http://lamp.linux.gov.cn/Apache/ApacheMenu/howto/ssi.html

    一、Apache 配置SSI功能

    修改Apache配置文件httpd.conf

    1. 确认加载include.so模块,将注释去掉:

    LoadModule include_module libexec/apache2/mod_include.so

    2. AddType部分去掉这两段注释:

    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml

    3. Directory目录权限里面找到

    Options Indexes FollowSymLinks

        增加Includes修改为:

    Options Indexes FollowSymLinks Includes

    4. 重新启动Apache,测试。

    二、Nginx 配置SSI功能

    在 http 段中加入下面几句即可:

    ssi on;
    ssi_silent_errors off;
    ssi_types text/shtml;

    三、SHTML精简教程

    你可以在SHTML文件中写入SSI指令,当客户端访问这些shtml文件时, 服务器端会把这些SHTML文件进行读取和解释,把SHTML文件中包含的SSI指令解释出来。

    比如:你可以在SHTML文件中用SSI指令引用其他的 html文件(#include ),服务器传送给客户端的文件,是已经解释的SHTML不会有SSI指令。它实现了HTML所没有的功能,就是可以实现了动态 的SHTML,可以说是HTML的一种进化吧。像新浪的新闻系统就是这样的,新闻内容是固定的但它上面的广告和菜单等就是用#include引用进来的。

    目前,主要有以下几种用用途: 更多请参考:http://www.javaeye.com/topic/306216

    1、显示服务器端环境变量<#echo>

    本文档名称:

    <!–#echo var=”DOCUMENT_NAME”–>

    现在时间:

    <!–#echo var=”DATE_LOCAL”–>

    显示IP地址</ins>

    <! #echo var=”REMOTE_ADDR”–>

    2、将文本内容直接插入到文档中<#include>

    <! #include file=”文件名称”–>

    <! #include virtual=”文件名称”–>

    file 文件名是一个相对路径,该路径相对于使用 #include 指令的文档所在的目录。被包含文件可以在同一级目录或其子目录中,但不能在上一级目录中。如表示当前目录下的的nav_head.htm文档,则为file=”nav_head.htm”。

    virtual 文件名是 Web 站点上的虚拟目录的完整路径。如表示相对于服务器文档根目录下hoyi目录下的nav_head.htm文件;则为virtual=”/hoyi/nav_head.htm”

    3、显示WEB文档相关信息<#flastmod><#fsize>(如文件制作日期/大小等)

    文件最近更新日期:

    <! #flastmod file=”文件名称”–>

    文件的长度:

    <!–#fsize file=”文件名称”–>

    4、直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)

    <!–#exec cmd=”文件名称”–>

    <!–#exec cgi=”文件名称”–>

    将某一外部程序的输出插入到页面中。可插入CGI程序或者是常规应用程序的输入,这取决于使用的参数是cmd还是cgi。

    5、设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)

    6、高级SSI可设置变量使用if条件语句。

    二、SHTML精简教程
    你可以在SHTML文件中写入SSI指令,当客户端访问这些shtml文件时, 服务器端会把这些SHTML文件进行读取和解释,把SHTML文件中包含的SSI指令解释出来。比如:你可以在SHTML文件中用SSI指令引用其他的 html文件(#include ),服务器传送给客户端的文件,是已经解释的SHTML不会有SSI指令。它实现了HTML所没有的功能,就是可以实现了动态 的SHTML,可以说是HTML的一种进化吧。像新浪的新闻系统就是这样的,新闻内容是固定的但它上面的广告和菜单等就是用#include引用进来的。