• SSI学习(二)


    1、SSI指令

    #config:指定返回到client浏览器的错误消息、日期和文件大小所使用的格式。
    #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就可以查看结果






  • 相关阅读:
    vue笔记-inheritAttrs及$attr表示含义(一)
    Springboot项目使用junit-test(@Test)报错原因汇总
    @Configuration的使用
    Spring-RabbitMQ实现商品的同步(后台系统)
    RabbitMQ持久化和非持久化
    spring-AMQP-RabbitMQ
    RabbitMQ的5种模式
    RabbitMQ消息队列+安装+工具介绍
    Mina整体体系结构分析
    Mina入门级客户端程序实现telnet程序
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6747653.html
Copyright © 2020-2023  润新知