什么是SSI?
SSI:Server Side Include,是一种基于服务端的网页制作技术,大多数(尤其是基于Unix平台)的web服务器如Netscape Enterprise Server等均支持SSI命令。
它的工作原因是:在页面内容发送到客户端之前,使用SSI指令将文本、图片或代码信息包含到网页中。对于在多个文件中重复出现内容,使用SSI是一种简便的方法,将内容存入一个包含文件中即可,不必将其输入所有文件。通过一个非常简单的语句即可调用包含文件,此语句指示 Web 服务器将内容插入适当网页。而且,使用包含文件时,对内容的所有更改只需在一个地方就能完成。
帝国cms系统需要SSI吗?
帝国的模板变量,实现里网页的模块化,但是如果是静态网站,局部更新后,全站刷新仍然是个麻烦的事情。所以SSI还是有必要的,尤其是内容信息几十万几百万的情况下。
如何使用?
在宝塔的网站管理里,设置:
server { listen 80; server_name www.zhongyf.com zhongyf.com; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/zhongyf1; ssi on; ssi_silent_errors on; #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 #error_page 404/404.html; #SSL-END #ERROR-PAGE-START 错误页配置,可以注释、删除或修改 error_page 404 /404.html; error_page 502 /502.html; #ERROR-PAGE-END #PHP-INFO-START PHP引用配置,可以注释或修改 include enable-php-56.conf; #PHP-INFO-END #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效 include /www/server/panel/vhost/rewrite/bd.zhongyf.com.conf; #REWRITE-END #禁止访问的文件或目录 location ~ ^/(.user.ini|.htaccess|.git|.svn|.project|LICENSE|README.md) { return 404; } #一键申请SSL证书验证目录相关设置 location ~ .well-known{ allow all; } location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; error_log off; access_log off; } location ~ .*.(js|css)?$ { expires 12h; error_log off; access_log off; } access_log /www/wwwlogs/bd.zhongyf.com.log; error_log /www/wwwlogs/bd.zhongyf.com.error.log; }
看到吧? 关键是插入了
ssi on; ssi_silent_errors on;
用帝国的自定义页面生成标签的html文件
比如有标签 :[!--temp.header--],可以自定也一个页面,地址为/d/ssi/header.html
内容为:[!--temp.header--]
就生成了这个标签对应的html文件。
然后,在列表或者内容模板里,这样调用它:
<!--#include file="/d/ssi/header.html"-->