老版地址(仅作固定作用):old.jincong.net

服务器开启SSI方法 帝国cms如何安装shtml及帝国cms高效随机调取实用方法

hml技术是一种中大型网站常用的技术,这种技术的优点是可以使用比动态页面更小的资源消耗实现部分动态页的功能。下面先举两个应用场景的例子。场景1:在内容页右侧调用网站最......
以下是【浮舟】分享的内容全文:

shtml技术是一种中大型网站常用的技术,这种技术的优点是可以使用比动态页面更小的资源消耗实现部分动态页的功能。下面先举两个应用场景的例子。

场景1:在内容页右侧调用网站最新10篇文章

首先,新建一个自定义页面,保存在 /inpage/zuixin.html ,页面内容是调用默认表最新10篇文章的灵动标签代码:

 

[e:loop={0,10,3,0}]<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>[/e:loop]

 然后,增加一个自动刷新任务,根据网站的内容更新情况,设定自动更新间隔时间,比如30分钟。

最后,在内容页模板中包含此页面即可,代码为:

<!--#include file="/inpage/zuixin.html"-->

如果使用 file 出现报错提示:

[an error occurred while processing this directive]

这是目录路径的问题,尝试在目录加上如下一句

<Directory />
    Options +Indexes +FollowSymLinks +ExecCGI +INCLUDES +IncludesNOEXEC
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
    SSILegacyExprParser on    << 这一句加上
</Directory>


如果仍然不能解决,可以把 file 换成:virtual

<!--#include file="/inpage/zuixin.html"-->

变成:

<!--#include virtual="/inpage/zuixin.html"-->

这是相对目录和绝对目录之争

场景2:内容页分栏目调用随机文章10篇

思路与以上场景相同,可以先新建多个随机生成信息的自定义页面,然后增加自动刷新任务,最后在模板中包含文件。

比较高效的随机调用方法:


<?php

$randnum=10;
$randids='';
$randdh='';for($i=1;$i<=$randnum;$i++)
{
 $randids.=$randdh.rand(1,100000); //1为最小ID,100000为最大ID
 $randdh=',';
}?>[e:loop={栏目ID,显示条数,操作类型,只显示有标题图片,"id in ($randids)"}]
模板代码内容
[/e:loop]


可以在不同页面调用不同的随机自定义页面

<!--#include file="/inpage/suiji_<?=$GLOBALS[navclassid]?>.html"-->

还有更加丰富的应用场景,比如调用广告页面,或者调用页头页脚,或者取代其它标签调用实现零标签的超简模板等等。

从以上场景可以看到,灵活的应用shtml技术,可以增加网站展现方式,且很大程度上又节省了系统资源。所以,在准备新建一个网站时,可以考虑使用这种技术。

二、让Apache支持shtml的方法

让Apache支持shtml只需要修改配置文件httpd.conf 。

1、查找 include.so ,确保此语句前没有 #

LoadModule include_module modules/mod_include.so

2、查找 AddOutputFilter ,将此句和上一句前的  #  删掉,变成

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

如果调用的是html文件,在后面需要加上 .html

AddType text/html .shtml .html .htm
AddOutputFilter INCLUDES .shtml .html .htm

3、查找 Options Indexes FollowSymLinks ,在末尾添加Includes  ,变成

Options Indexes FollowSymLinks Includes

 配置完成,最后重启Apache即可。

三、让Nginx支持shtml的方法

打开Nginx配置文件nginx.conf,在http里插入代码:

ssi on;
ssi_silent_errors on;
ssi_types text/shtml;

包含文件有两种命令 include file 与 include virtual ,可以根据情况来选择。

file和virtual的区别在于:file属性是一个相对于当前目录的文件路径,即不能是一个绝对路径以"/"开头或包含"../"的路径。virtual属性可以是一个相对于被提供的文档的URL ,可以以"/"开头,但必须与被提供的文档位于同一服务器上。

最后需要补充的是,如果不准备使用#include,则不要使用shtml,毕竟比起html来,还是要耗费多一些的系统资源。


金聪线报提示:[ 服务器开启SSI方法 帝国cms如何安装shtml及帝国cms高效随机调取实用方法 ] 仅为会员分享交流,仅供学习、参考使用,请勿用于其他用途,如果想商业使用或者代理,请自行联系版权方获取授权。任何未获取授权的商业使用与本站无关,请自行承担相应责任。
本站不存储任何资源文件,敬请周知!
此资源仅供个人学习、研究使用,禁止非法转播或商业用途,请在获取后24小时内删除,如果你觉得满意,请寻求购买正版或获取授权!
免责申明:本站仅提供学习的平台,所有资料均来自于网络分享线索,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以处理。版权申诉相关说明
本网站采用 BY-NC-SA 协议进行授权 转载请注明原文链接:服务器开启SSI方法 帝国cms如何安装shtml及帝国cms高效随机调取实用方法
221381
领取福利

微信扫码领取福利

微信扫码分享