综述

SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在html文件中,可以通过注释行调用的命令或指针。SSI具有强大的功能,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。SSI 可以称得上是那些资金短缺、时间紧张、工作量大的网站开发人员的最佳帮手。本文将主要结合Apache服务器介绍SSI的使用方法。

如何启动SSI?

http://www.gaodaima.com/46446.htmlSSI使用详解(一)_php

在Apache服务器下,可以通过直接编辑服务器配置文件或者在需要使用SSI的目录中创建.htaccess文件来启动SSI。具体过程如下:

1.服务器配置文件

如果用户具有对服务器配置文件的访问权限,可以通过编辑文件access.conf和srm.conf启动SSI。

首先登录到服务器,找到配置文件的存放目录,使用任何一种文字编辑器打开文件srm.conf,找到以下几行:

# If you want to use server side includes, or CGI outside

# ScriptAliased directories, uncomment the following lines.

#AddType text/x-server-parsed-html .shtml

#AddType application/x-httpd-CGI .CGI

注意, 高版本的Apache可能是这几行:

#

# To use server-parsed HTML files

#

#AddType text/html .shtml

#AddHandler server-parsed .shtml

用户的配置文件中可能没有上述的注释指令行,但是只要找到以AddType开头的两行并且去掉每一行最前面的"#"符号即可。

保存所做的修改,然后再打开文件access.conf。用户需要在文件中找到设置DocumentRoot(根文件)的部分。一般来说该段文本如下:

# This should be changed to whatever you set DocumentRoot to.

<Directory /usr/local/etc/httpd/htdocs>

# This may also be "None", "All", or any combination of "Indexes",

# "Includes", or "FollowSymLinks"

Options Indexes FollowSymLinks

</Directory>

将其中的Options Indexes FollowSymLinks改为:

Options Indexes FollowSymLinks Includes

如果用户不希望执行脚本或shell命令,可以在options选项行中加入关键字IncludesNOEXEC,这样可以允许SSI,但是不能执行CGI或脚本命令(注:高版本的Apache服务器中,以上所提到的内容都已经被包含在配置文件httpd.conf中)。

2.创建文件.htaccess

如果用户不能直接访问服务器配置文件,可以使用文件编辑器创建一个名为.htaccess的文件。注意,文件名前一定要有符号".",这样服务器才能知道该文件是隐藏文件,从而提高文件的安全性,以避免错误操作。在.htaccess文件中需要加入以下三行文字:

Options Indexes FollowSymLinks Includes

AddType application/x-httpd-CGI .CGI

AddType text/x-server-parsed-html .shtml

完成之后,可以把.htaccess文件上传到服务端的相应目录,该文件对所有子目录有效。如果用户希望在目录级上禁止CGI或shell命令,可以在.htaccess文件中的Options选项行加入关键字IncludesNOEXEC。

3.使用.shtml还是.html?

任何包含SSI的文件在下传到客户端之前,都必须经过服务器的解析过程。这样会增加服务器的负载,如果用户只希望在几个特殊页面中使用SSI,可以将文件的后缀名改为.shtml,这样服务器就可以只解析包含SSI的.shtml文件。另一方面,如果有多个页面使用了SSI,但是用户不希望使用.shtml的后缀名时,可以在.htaccess文件中使用以下命令行:

AddType text/x-server-parsed-html .html

怎样使用SSI?

SSI在使用时遵循以下格式:

<!--#directive parameter="value"-->

其中,directive是向服务器发送的指令名称,parameter是指令的操作对象,而value则是用户希望得到的指令处理结果。

所有的SSI命令都是以"<!--#"开始,其中"<!-"和"#"之间不能有任何空格,否则服务器会把SSI命令当称普通的文件注释处理,不会显示出任何结果,也不会产生错误提示。此外,SSI命令中的"="两边不能有空格,右边的值必须包含在双引号内,后面可以跟空格,最后是结束标签"-->"。

SSI命令包含六大类指令以及各自的参数,具体如下:

指令名称 参数列表

Config errmsg, timefmt, sizefmt

include virtual, file

echo var

fsize file

flastmod file

exec cmd, cgi

欢迎大家阅读《SSI使用详解(一)_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码

原创文章,转载请注明: 转载自搞代码

微信 赏一包辣条吧~

支付宝 赏一听可乐吧~

ssi 指令 php,SSI使用详解(一)_php相关推荐

  1. 我的世界服务器ess配置信息,我的世界ess指令大全及用法详解

    我的世界ess指令大全及用法详解告诉你<我的世界>是一款风靡全球的沙盒游戏,其中哟很多的指令可以帮助玩家更好的游戏.ess指令在ess插件运行中十分重要的一部分,但是很多新手玩家在刚开始接 ...

  2. 我的世界ess服务器信息,我的世界ess指令怎么用 ess指令大全及用法详解

    我的世界ess指令都有哪些?作为风靡全球的沙盒游戏,我的世界带给玩家太多的乐趣.为了能更方便的游戏,ess指令能帮助我们更好的游戏.很多新手玩家刚接触就被搞晕了,这么多的指令看起来有些复杂.下面就由小 ...

  3. 我的世界服务器ess配置文件,《我的世界》ess指令大全及用法详解

    我的世界是一款风靡全球的沙盒游戏,其中哟很多的指令可以帮助玩家更好的游戏.ess指令在ess插件运行中十分重要的一部分,但是很多新手玩家在刚开始接触的时候都不是太了解,下面安卓游戏小编就为大家带来我的 ...

  4. 欧盟包装指令94/62/EC详解

    欧盟包装指令94/62/EC详解 欧盟包装指令94/62/EC详解,欧盟包装和废弃包装物指令对包装材料进行管制,主要原因在于包装材料常在使用过后,被消费者任意地丢弃至环境土壤中,其中所含的危害物质将会 ...

  5. 我的世界ess服务器信息,我的世界ess指令大全及用法详解

    我的世界是一款高人气的沙盒游戏,其中哟很多的指令可以帮助玩家更好的游戏,ess指令在ess插件运行中十分重要的一部分,下面介绍我的世界ess指令大全及ess指令的使用方法.一起来看看吧. 我的世界es ...

  6. 龙族幻想冰龙古洞计算机指令,龙族幻想挑战代码指令及电脑位置详解 龙族幻想代号末日卡木头人bug...

    龙族幻想挑战代码指令及电脑位置详解 龙族幻想代号末日卡木头人bug由西皮资源网编辑网络收集整理,本文立场不代表本站立场,仅供学习参考.版权和权益都归属于作者,如有侵害您的权益请与本站联系,我们将在第一 ...

  7. SSI(Server Side Includeds)使用详解(转载)

    SSI使用入门: 1.什么是SSI技术? SSI(Serve Side Includes),通常称之为服务器端包含,使用SSI技术文件默认的后缀名为.shtml,SSI技术通过在html文件中加入SS ...

  8. ssi 指令 php,SSI 漏洞学习笔记

    0x01 SSI (Server Side Includes) SSI (Server Side Include),是一种简单的服务器端解释性脚本语言.通过使用 #include 指令将一个或多个文件 ...

  9. 三菱plc pwm指令_三菱PLC系列常用指令语言中英详解

    今天来给大家分享三菱PLC系列指令的中英文详解,如果你看不明白,想学习请您观看关于三菱PLC指令应用的视频,这些使用方法我都有录制,大家可以从第一节看起,如果有什么不懂不明白的地方可以视频或者图文下方 ...

最新文章

  1. 如何通过一行代码下载B站视频?
  2. Microsoft Azure部署MYSQL-MMM(3)配置MYSQL-MMM
  3. Python初探---2x版本与3x版本的区别
  4. Linux环境:NFS--网络文件系统部署
  5. Altium Designer -- PCB布局与布线
  6. 聚簇索引和非聚簇索引的区别_学习索引的一些总结
  7. android开发标签栏应该设置多少,Android开发笔记(十九)底部标签栏TabBar
  8. Linux 增加swap空间大小
  9. HaaS506-HD1本地更新固件教程
  10. 【电机学】绪论:基本电磁定律,铁磁材料特性
  11. 为效率而生-开源Mac版Google Authenticator认证客户端GoldenPasspor
  12. Stream Collectors - reducing
  13. 卷积神经网络基础知识五(mobilenet)
  14. 薄如便签纸的概念闪存U盘:贴在电脑上就能用
  15. 详解Flutter中各种Binding
  16. 废旧光驱拆解与丝杆测试
  17. python模块相互引用_python导入模块交叉引用的方法
  18. 【BZOJ 2330】 [SCOI2011]糖果【差分约束】
  19. dart pub私有仓库搭建、私有仓库上传方法、上传工具定制
  20. [CSCCTF 2019 Qual] FlaskLight

热门文章

  1. 灵活组合复合图元模板,电路图状态图业务定义可配置,浮云E绘图软件源码开发
  2. python从键盘上输入一个字符、当输入的是英文字母时_以下程序的功能:从键盘上输入一个字符,当输入的是英文字母时,输出\'输入的是英文字母\'; 当输入的...
  3. 土壤湿度指标(Soil wetness index,SWI)
  4. 企业WiFi管理解决方案
  5. SushiSwap新任「主厨」对近期传闻的回应
  6. Python人脸图像特征提取(HOG、Dlib、CNN方法)
  7. 数据竞赛专题 | 从赛题理解到竞赛入门基础
  8. python 儿童 游戏_防止孩子玩游戏的Python小程序
  9. android 汉字笔画拆写,基于形状分割的手写汉字笔划提取方法
  10. ​五分钟扫盲:进程与线程基础必知