您的位置:首页 > 运维架构 > Apache

Apache开启SSI配置以及针对shtml开启apache相关设置

2011-08-25 18:49 441 查看
SSI是英文Server
Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针。SSI具有强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。网站维护常常碰到的一个问题是,网站的结构已经固定,却为了更新一点内容而不得不重做一大批网页。SSI提供了一种简单、有效的方法来解决这一问题,它将一个网站的基本结构放在几个简单的HTML文件中(模板),以后我们要做的只是将文本传到服务器,让程序按照模板自动生成网页,从而使管理大型网站变得容易。

shtml来include网页文件Apache2.2 (httpd.conf文件)配置

1、 去掉AddType text/html .shtml ,AddOutputFilter INCLUDES .shtml前面注释

# Filters allow you to process content
before it is sent to the client.

#

# To parse .shtml files for server-side includes (SSI):

# (You will also need to add "Includes" to the "Options" directive.)

#

#AddType text/html .shtml

#AddOutputFilter INCLUDES .shtml

2、查找Options Indexes FollowSymLinks 在后面加上INCLUDES

注意,SSI确实可以利用shell来执行命令,这个功能是极度危险的,因为它会执行任何包含在exec标记的命令,如果用户有可能修改你的网页内容,一定要关闭这个功能。在Options指令加入IncludesNOEXEC参数。

Options -Indexes FollowSymLinks INCLUDES IncludesNOEXEC

同时加AddType
text/html .shtml[/u]

AddHandler
server-parsed .shtml[/u]


注意在IIS6中使用#include
file="../some.shtml"就可以父路径的地包含,但是在apache中file只能是子路径的包含,父路径是用virtral,如:#include virtual="../some.shtml"


shtml
的压缩方法不同于js css php

方法如下:

AddOutputFilter INCLUDES;DEFLATE shtml

如:

<Location
"/">

SetOutputFilter DEFLATE

BrowserMatch ^Mozilla/4 gzip-only-text/html

BrowserMatch ^Mozilla/4\.0[678] no-gzip

BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

SetEnvIfNoCase Request_URI \.(?:pdf|doc)$ no-gzip dont-vary

AddOutputFilter ByType DEFLATE text/html text/plain text/xml text/css

AddOutputFilter ByType DEFLATE application/x-javascript

AddOutputFilter INCLUDES;DEFLATE shtml

</Location>

Options +Includes (or IncludesNoExec) wasn't set的解决

在 httpd.conf增加

AddOutputFilter INCLUDES .htm

AddHandler server-parsed .htm

同时注意你INCLUDES配置的的目录是否在根目录下面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: