网站包含功能Apache SSI 教程

合集下载

Apache ssl认证2.0

Apache  ssl认证2.0

Apache认证、授权及访问控制(针对IP地址)一、客户需求要求建设起来的内部网站允许所有员工使用,在公司内部使用时,可以随便查看预览,没有限制。

为了网络安全,员工一旦出差去外地就无法直接访问内网,需要通过一种方式验证,才能看到内网或者特殊栏目。

通过一些其他软件或者设备,完全可以实现,如果客户的需求只是这样,有不要求非常严格。

可以采用Apache软件来限制就可以了。

二、简单概述其实就是利用apache程序作详细配置,实现不同地区,不同访问者用IP段限制、登陆名的方法访问网站,在特殊的地区(针对IP地址)不需要任何限权,直接访问网站;其他位置的地区,授权用户则需要事先分配的登陆名和密码登陆,其他人则无权访问。

1、示意图:2、Apache程序配置控制的流程图:所有限制都在apache里配置完成,访问网站前先通过apache判断。

由apache事先配置的相关约束条件来选择性的访问网站。

三、Apache相应文件配置修改涉及模块mod_accessmod_authmod_auth_mysql要在httpd.conf里先找到相应的命令行,去掉前面的#1、Red Hat Linux配置httpd.conf文件找到/conf/httpd.conf此内容为代理一个网站,指向一个本地目录的最简单配置:安装好apache程序,一般默认情况下前面是带#,表示注释掉了,不起作用,需要将相应的命令行前去掉,开启命令。

<VirtualHost *>ServerName //指定地址ServerAlias 211.90.115.220 //允许执行一个特定目录中的CGI程序Action application/x-httpd-fastphp /fcgi-php43/php //加载php4模块DocumentRoot /data/www/hanweb/sites/newhanweb //指向网站的物理地址//这里还有好多代码需要大家学习,例如我们的静态网站下需要模个程序模块,就需要做一个代理来加载。

SSI应用详解

SSI应用详解

SSI应用详解,举例说明
解释下吧.举个例子,打开腾讯的新闻内页,右侧的推荐列表总是最新的,不管你当前的页面是8月的还是1
月的,右侧的最新新闻总是即时的,开始觉得可能是很频繁的生成静态文件,但是很快被自己否定了,很占资源,麻烦.后来也想到靠js,但是查看了TX的源码,发现也不是,代码直接写到当前页面了.于是后来一直百思不得其解.
最近这个问题算是解决了.
SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。

从技术角度上说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针。

SSI具有强大的功能,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程序等复杂的功能。

SSI 可以称得上是那些资金短缺、时间紧张、工作量大的网站开发人员的最佳帮手。

本文将主要结合Apache服务器介绍SSI的使用方法。

服务器端配置ssi的方法可以参考下面的网址,我就不废话了,很简单.
/articles/275.shtml
/newsoft/ApacheManual/howto/ssi.html
/docs/2.2/howto/ssi.html
然后程序里的实现方式:
PHP代码
模板里是这样的:
XML/HTML代码
然后,生成的静态文件里,这一部分的代码是这样的(在服务器里看源码):
XML/HTML代码
在客户端查看的时候,就变成html代码了.呵呵.
ssi的内容其实就是html代码.只是为了方便大量的页面对他的调用,即时的调用.所以才出现的一种技术.
哎,孤陋寡闻,困扰我多年啊.。

Apache 开启SSI配置

Apache 开启SSI配置

Apache 开启SSI配置1、去掉AddType text/html .shtml,AddOutputFilter INCLUDES .shtml前面注释AddHandler server-parsed .shtmlAddType text/html .shtml .html .htmAddOutputFilter INCLUDES .shtml .html .htm2、查找Options Indexes FollowSymLinks在后面加上INCLUDES 注意,SSI确实可以利用shell来执行命令,这个功能是极度危险的,因为它会执行任何包含在exec标记中的命令。

如果用户有可能修改你的网页内容,那么你一定要关闭这个功能。

可以在Options指令中加上IncludesNOEXEC参数,以关闭exec功能,同时又保留SSI。

<Directory "/wwwroot"> #修改wwwroot网站目录# Options FollowSymLinks# AllowOverride None# Order deny,allow# Deny from allOptions FollowSymLinks INCLUDES IncludesNOEXECAllowOverride None</Directory>3、重新启动apache ,ok你的html、shtml就可以加载页面了。

4、用include命令包含页面。

include元素能按file属性或virtual属性判断应该包含的文件。

file属性是一个相对于当前目录的文件路径,即不能是一个绝对路径(以"/"开头)或包含"../"的路径。

virtual属性可能更有用,它是一个相对于被提供的文档的URL ,可以以"/"开头,但必须与被提供的文档位于同一服务器上。

shtml网页SSI使用详解

shtml网页SSI使用详解

shtml网页SSI使用详解来源:网页制作学习园地作者网页制作学习园地点击数:82 录入时间:07-12-06 23:59:10shtml使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。

1、Config命令Config命令主要用于修改SSI的默认设置。

其中:Errmsg:设置默认错误信息。

为了能够正常的返回用户设定的错误信息,在HTML文件中Errmsg参数必须被放置在其它SSI命令的前面,否则客户端只能显示默认的错误信息,而不是由用户设定的自定义信息。

<!--#config errmsg="Error! Please email webmaster@ -->Timefmt:定义日期和时间的使用格式。

Timefmt参数必须在echo命令之前使用。

以下是引用片段:<!--#config timefmt="%A, %B %d, %Y"--><!--#echo var="LAST_MODIFIED" -->显示结果为:Wednesday, April 12, 2007也许用户对上例中所使用的%A %B %d感到很陌生,下面我们就以表格的形式总结一下SSI中较为常用的一些日期和时间格式。

Sizefmt:决定文件大小是以字节、千字节还是兆字节为单位表示。

如果以字节为单位,参数值为"bytes";对于千字节和兆字节可以使用缩写形式。

同样,sizefmt参数必须放在fsize命令的前面才能使用。

以下是引用片段:<!--#config sizefmt="bytes" --><!--#fsize file="index.html" -->2、Include命令Include命令可以把其它文档中的文字或图片插入到当前被解析的文档中,这是整个SSI的关键所在。

Windows下配置Apache的SSL服务

Windows下配置Apache的SSL服务

Windows下配置Apache的SSL服务到Apache的网站上下载包含有SSL服务的安装包。

如果你已经安装过了Apache,在安装含有SSL服务的Apache服务器之前需要卸载已经安装过的。

到控制面板里面直接卸载就可以了。

注意:Apache在卸载的时候不会删除httpd.conf这个配置文件和htdocs文件夹下面的内容。

如果你确实不需要,你需要手工删除。

在Windows的环境下面安装含有SSL的Apache和不含有Apache的方法和过程一致。

这里关键说安装以后的服务配置。

httpd.conf文件,如果需要Apache服务器支持SSL,这里需要载入几个模块。

去掉下面两行之前的#符号LoadModule ssl_module modules/mod_ssl.soInclude conf/extra/httpd-ssl.confLoadModule ssl_module modules/mod_ssl.so的作用是载入SSL模块Include conf/extra/httpd-ssl.conf 的作用是告诉Apache的SSL模块到那里去找配置文件重新启动服务器,测试一下看有没有什么问题。

显然在重新启动服务器的时候报了一个错误,说服务器无法正常启动。

这时候我们可以看看日志文件了。

[Fri Aug 15 15:33:08 2008] [notice] Parent: Received restart signal -- Restarting the server. [Fri Aug 15 15:33:08 2008] [notice] Child 740: Exit event signaled. Child process is ending. Syntax error on line 99 of D:/Dkits/Apache2.2/conf/extra/httpd-ssl.conf: SSLCertificateFile: file 'D:/Dkits/Apache2.2/conf/server.crt' does not exist or is empty[Fri Aug 15 15:33:08 2008] [warn] (OS 995)The I/O operation has been aborted because of either a thread exit or an application request. : winnt_accept: Asynchronous AcceptEx failed.[Fri Aug 15 15:33:09 2008] [notice] Child 740: Released the start mutex[Fri Aug 15 15:33:10 2008] [notice] Child 740: All worker threads have exited.[Fri Aug 15 15:33:10 2008] [notice] Child 740: Child process is exiting上面说在D:/Dkits/Apache2.2/conf/server.crt路径下找不到server.crt这个文件。

浅析Apache服务器中SSI和CGI设定方法

浅析Apache服务器中SSI和CGI设定方法

由于Apache具有相当高的可移植性,它支持超过30种操作系统,包括Unix、Windows 及Darwin等系统,所以目前在网络上已注册的网域里大部份是使用Apache网页服务器。

目前ApacheSoftware Foundation 正致力于发展现在已进入alpha测试阶段的Apache2.0。

在这里,我和大家探讨如何修改服务器选项让服务器能提供简单的动态网页内容,也就是支持CGI程序及 Server-Side Include(SSI)程序。

1、准备工作首先,我假设你已经安装好Apache 而且你的Apache能提供静态网页供浏览。

Apache的安装会自动附上静态的HTML 测试页,也就是说如果能看到那测试页,就代表你的Apache能正常运作了。

基本安装下的Apache仅能提供静态的HTML网页。

然而,你可以通过使用模块(modules)来提升它的功能。

在原始的设定下,Apache的编译会包含mod_include 及 moc_cgi 这两个模块。

你可以在bin子目录下执行./httpd -l 来查看你的Apache是否装有这两个模块。

执行的输出会是一长串Apache现在安装的所有模块。

如果mod_include及moc_cgi 这两个模块不在清单里,你必须重新编译服务器。

重新编译时,确定依照如何含括 mod_include、moc_cgi 模块的说明。

此外你还必需有提供实时网页的Server-Side Includes(相关资料网址:/catalog/apache/excerpt/ch10.html)。

有了server-side includes (SSI)支持,你就能制作出实时的动态网页。

接下来,我先从服务器的SSI支持设定开始,然后进入CGI的编写。

2、Apache的设定首先你必须先找到Apache这个设定文件。

Apache的原始安装目录在 Unix 下是/usr/local/apache,在Windows下则是 c:\Program Files\Apache。

Apache配置SSL(Windows和linux)

Apache配置SSL(Windows和linux)

Linux版apache https配置详细步骤讲解作者:字体:[增加减小] 类型:转载时间:2010-06-21我要评论主要讲述在windows下apache配置SSL以实现http转换为httpsSSL: SSl是为Http传输提供安全的协议,通过证书认证来确保客户端和网站服务器之间的数据是安全。

也就是说在SSL下http传输是安全的,我们成为https.配置过程如下:步骤一:安装apache,使其支持SSL,并安装php1.安装配有SSL模块的apache,apache_2.2.8-win32-x86-openssl-0.9.8g2.配置apache以支持SSL:打开apache的配置文件conf/httpd.conf1)LoadModule ssl_module modules/mod_ssl.soInclude conf/extra/httpd-ssl.conf去掉两行前面的#2)注意修改httpd-ssl.conf 文件里的两个字段:SSLCertificateFile "C:/Apache2.2/conf/server.crt"SSLCertificateKeyFile "C:/Apache2.2/conf/server.key"3.安装php,整合apache和Php(略)为下面你所生成的证书和密钥地址。

步骤二:为网站服务器生成证书及私钥文件1. 生成服务器的私钥进入命令行:D:\local\apache2\bin\openssl genrsa -out server.key 1024在当前目录下生成了一个server.key生成签署申请2. 生成签署申请D:\local\apache2\bin>openssl req -new –out server.csr -key server.key -config ..\conf \f此时生成签署文件server.csr.步骤三:通过CA为网站服务器签署证书1.生成CA私钥D:\local\apache2\bin\openssl genrsa -out ca.key 1024多出ca.key文件2.利用CA的私钥产生CA的自签署证书D:\local\apache2\bin\openssl req -new -x509 -days 365 -key ca.key -out ca.crt -confi g ..\conf\f此时需要输入一些信息,注意Common Name为服务器域名,如果在本机,为本机IP。

SSI使用说明文档

SSI使用说明文档

一、Apache中配置ssi来源1:/s/blog_765941620100wiir.html来源2:/article.php?/1700(此处对SSI有详细介绍)(以下为总结的要点)官方参考文档:/docs/2.0/howto/ssi.html/docs/2.0/mod/mod_include.html/docs-project/参考网站:/Server/thread-53073-1-1.html/wenzhang/caozuoxitong/201009/198522.html/blog/static/105742350201051861034876//article/730.htm(介绍Apache Tomcat中SSI配置的详细方法)如何配置Apache支持SSI?Apache默认是不支持SSI的,需要我们更改httpd.conf来进行配置。

我这里以windows平台的Apache 2.0.x为例,打开conf目录下的httpd.conf文件,搜索“AddType text/html .shtml”,找到:# AddType text/html .shtml# AddOutputFilter INCLUDES .shtml把这两行前面的#去掉。

然后搜索“Options Indexes FollowSymLinks”在搜索到的那一行后面添加“Includes”即将该行改变为Options Indexes FollowSymLinks Includes(特别注意!!!该句应添加到你的应用目录或其父目录下,以下为笔者的配置)该配置在httpd-vhosts.conf文件中完成该配置表示只在D:/www及其子目录下应用SSI熟悉apache manual的可能会觉得比较容易。

保存httpd.conf,重起apache即可到此我们就完成了对Apache SSI的设置。

验证SSI配置成功在服务器目录(即你自己刚刚配置的目录)上新建文件ssitest.shtml(特别说明:以下文字内容为原作者的内容,图片为笔者的测试内容!)文件内容为<!--#echo var="DATE_LOCAL" -->echo元素仅仅是反馈一个变量的值。

Apache Shiro入门

Apache Shiro入门

Apache Shiro入门Apache Shiro基本概念使用Shiro能做什么验证用户(认证)。

对用户执行访问控制,像是:判断用户是否具有某一角色。

判断用户是否具有做某事的权限。

在任何环境下都能使用Session API,即使没有诸如Spring,EJB这样的容器。

在授权,访问控制或者会话生命周期中,都能响应事件。

可以使用多个数据源。

支持单点登录(SSO)功能。

支持”Remember Me”服务。

Shiro的特性从上图可以看出,shiro有4个主要特性,分别是认证(Authentication)、授权(Authorization)、会话管理(Session Management)和密码(Cryptography)服务。

以及6个附加(支持)特性,分别是Web支持(Web Support)、缓存(Caching)、并发(Concurrency)、测试(Testing)支持、以…运行(Run As)、记住我(Remember Me)。

参照开涛的解释,如下:Authentication:身份认证/登录,验证用户是不是拥有相应的身份;Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。

或者细粒度的验证某个用户对某个资源是否具有某个权限;Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的;Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储;Web Support:Web支持,可以非常容易的集成到Web环境;Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率;Concurrency:shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去;Testing:提供测试支持;Run As:允许一个用户假装为另一个用户(如果他们允许)的身份进行访问;Remember Me:记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。

详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势

详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势

详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势⾸先看⼀下阿⾥云官⽅的教程:⽂件说明:1. 证书⽂件xxxxxx.pem,包含两段内容,请不要删除任何⼀段内容。

2. 如果是证书系统创建的CSR,还包含:证书私钥⽂件xxxxxxxx.key、证书公钥⽂件public.pem、证书链⽂件chain.pem。

( 1 ) 在Apache的安装⽬录下创建cert⽬录,并且将下载的全部⽂件拷贝到cert⽬录中。

如果申请证书时是⾃⼰创建的CSR⽂件,请将对应的私钥⽂件放到cert⽬录下并且命名为xxxxxxxx.key;( 2 ) 打开 apache 安装⽬录下 conf ⽬录中的 httpd.conf ⽂件,找到以下内容并去掉“#”:#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)#Include conf/extra/httpd-ssl.conf( 3 ) 打开 apache 安装⽬录下 conf/extra/httpd-ssl.conf ⽂件 (也可能是conf.d/ssl.conf,与操作系统及安装⽅式有关),在配置⽂件中查找以下配置语句:# 添加 SSL 协议⽀持协议,去掉不安全的协议SSLProtocol all -SSLv2 -SSLv3# 修改加密套件如下SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUMSSLHonorCipherOrder on# 证书公钥配置SSLCertificateFile cert/public.pem# 证书私钥配置SSLCertificateKeyFile cert/xxxxxxx.key# 证书链配置,如果该属性开头有 '#'字符,请删除掉SSLCertificateChainFile cert/chain.pem( 4 ) 重启 Apache。

网站架构(IIS&Apache)

网站架构(IIS&Apache)
网站架构
当我们完成了所有网站相关网页的制作 时,接下来就应该搭建自己的网站了。 搭建网站有两个重要的方面,第一是在 internet上申请一个域名,以便其他人可 以通过这个域名访问到你的网站;其次 则是在服务器上配置好Web服务。
IIS
首先,我们需要安装IIS,按照以下操作 进行安装。 1.单击开始菜单->设置->控制面板, 如图1-1所示; 2.选择添加、删除程序选项,并选择添加 /删除windows组件子选项,如图1-2所 示;
IIS
对MS公司的IIS我们就简单的介绍到 这里。有兴趣的读者可以参考其他 资料,以便更为深入的了解和熟悉 IIS。
Apache
IIS
所有操作完成以后,我们就可以在IE浏览器中 输入自己本机的ip地址(或者127.0.0.1)来浏 览自己的网站了。执行结果如图1-6所示; 到此为止,我们已经利用IIS成功的搭建好自己 的网站,并向用户提供了Web服务。至于安全 性以及响应时间等其他方面的内容,也可以在 IIS中进行相应的设置。其设置操作可以在IIS 的配置界面下进行。
IIS
3.放入WinXP的系统盘,并选择Internet 信息服务(IIS)选项,如图1-3所示; 4.单击下一步按钮,如图1-4所示; 5.安装完成,单击完成按钮,如图1-5 所示;
IIS
当IIS安装完成以后,我们将网站的所有网页放 入到wwwboot文件夹下,并将网站首页重命名 为default.htm。 当采用默认的安装方式时,wwwboot文件夹位 于目录C:\Inetpub下。 注意:但把所有网页放在该目录下时,可能有 的超链接路径需要更改,尤其是对于超链接中 使用了绝对路径的情形,否则执行将不正确。
IIS
按照如下操作进入IIS的配置界面。 1.单击开始菜单->设置->控制面板- >性能和维护,如图1-7所示; 2.点击管理工具选项,如图1-8所示; 3.点击Internet信息服务选项,如据IIS提供的服务选项对 网站的安全性等方面的问题进行设置了, 例如点击操作菜单中的属性选项,就可 以根据需要进行相应的设置,如图1-10 所示。

让apache反向代理iis及多域名设置

让apache反向代理iis及多域名设置

AllowOverride None
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
四、asp页面访问,apache反向代理iis,以及rewrite综合设置。
要在apache中访问asp,则需要用到proxypass,即在第二步中先打开的代理模块。
一、首先安装好apache及iis,设置apache端口80,iis端口81(这里只要别和apache冲突就行了)
二、找到apache的配置文件httpd.conf,去掉下面语句的注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
proxyreverse /test http://123.0.0.1:81/test
# 请使用相同目录名,否则路径会出错,就是通过在浏览器中输入a.b.c,会访问“d:\www\abc\”根目录下文件;若输入a.b.c/test,就会通过apache的反向代理访问至iis下的test目录(或test虚拟目录),以此类推,可以相应多设置需要执行asp的目录。
RewriteCond %{REQUEST_URI} ^/.*(\.asp)x?\??.*$ [NC]
RewriteRule ^/test/(.*) http://123.0.0.1:808/test/$1 [P]
#把html文件的请求转到iis处理
RewriteCond %{REQUEST_URI} ^/.*(\.html)?\??.*$ [NC]

设置Apache支持shtml(SSI)

设置Apache支持shtml(SSI)

设置Apache支持shtml(SSI)先说一下什么是shtml,什么是SSI,其实是一回事。

先说SSI吧,SSI全称是Server Side Including,即服务器端包含文件。

简单的说,就是静态网页中可以包含静态网页,而不是使用框架。

我们知道,要在一个页面中包含另一个页面,动态语言如ASP、PHP等可以做到,但不使用动态语言的情况下,SSI就是一个很方便的技术。

那么回过头来看,什么是shtml呢,它就是包含了其它静态页面的html页面。

为了显示它与别的html文件的不同,于是它的文件后缀改成了shtml或shtm。

下面我们看看在Apache中,如何修改配置文件,让Apache服务器支持shtml格式的文件。

要设置Apache支持shtml,首先必须要给配置文件指定Option选项:Options +Includes这个指令的意思让Apache支持服务器端包含。

但现在Apache还不知道哪些文件是服务器端包含文件,需要特别指定一下,如何指定呢,有两种方法:第一,指定后缀类型,再加FilterAddType text/html .shtml AddOutputFilter INCLUDES .shtml假如我们的SSI文件是以.shtml后缀命名的,那上面的指定就告诉服务器shtml服务器在输出时进行服务器端包含处理。

非.shtml的文件,即便有包含指令,也不会被解析。

这种做法有一个缺陷,那就是文件后缀必须修改为.shtml。

如果一个已经运营一段时间的网站,要修改网页文件名,是一件很困难的事,对SEO也会有很大的影响。

第二,使用XBitHack指令XBitHack onXBitHack告诉Apache解析所有设置了执行位的文件中的SSI指令。

这样,无需修改文件名(即还使用.html作为文件后缀),只要用chmod使文件变成可执行的,就可以对现有页面增加SSI指令。

Linux下可以使用这个命令来加执行位:chmod +x page.html。

服务器端包含、嵌入技术SSI(ServerSideInclude)详解

服务器端包含、嵌入技术SSI(ServerSideInclude)详解

服务器端包含、嵌⼊技术SSI(ServerSideInclude)详解SSI简介SSI在静态⽂件中⾮常有⽤,能分离⼀些可变的模块,如每⽇排⾏榜等。

其主要作⽤有:1.显⽰服务器端环境变量<#echo>2.将⽂本内容直接插⼊到⽂档中<#include>3.显⽰WEB⽂档相关信息<#flastmod #fsize> (如⽂件制作⽇期/⼤⼩等)4.直接执⾏服务器上的各种程序<#exec>(如CGI或其他可执⾏程序)5.设置SSI信息显⽰格式<#config>(如⽂件制作⽇期/⼤⼩显⽰⽅式)6.⾼级SSI<XSSI>可设置变量使⽤if条件语句。

apache、nginx等都⽀持SSI命令,配置下就可以,Nginx的配置可以参考:SSI 的默认扩展名是 .stm、.shtm 和 .shtmlSSI语法⽰例:<!--#command param="value"-->SSI的语法⾮常简单,但使⽤中需注意以下⼏点:1.<!–与#之间⽆空格2.SSI⼤⼩写敏感3.所有value需写在引号中SSI命令config命令config命令主要⽤于修改SSI的默认设置,诸如时间格式,默认错误信息,⽂件⼤⼩单位。

设置默认错误信息:errmsg<!--#configerrmsg="Error,*******************************"-->定义⽇期和时间格式:timefmt<!--#config timefmt="%A, %B %d, %Y"-->定义⽂件⼤⼩单位<!--#config sizefmt="bytes"-->config命令只对其后使⽤的命令⽣效。

同时,后定义的设置具有更⾼的优先级,会覆盖之前的设置。

网站包含功能Apache SSI 教程

网站包含功能Apache SSI 教程

Apache SSI 教程本文参照的系统环境:●Windows XP SP2●Apache HTTP Server v2.0.55 (Win32)什么是SSI?SSI(Server Side Includes),是嵌套在HTML 网页中的指示语句,由后台服务器进行代码的解释计算。

使用SSI 可以动态的创建一部分网页内容而不需要编写复杂的JSP/ASP/PHP 等程序。

SSI 是如此的小巧以至于不应算作一门语言,因为他远没有JSP/ASP/PHP 等程序那么复杂,只有一些极其有限的语法规则。

但就算是只有这有限的一点语法规则,只要开动起你创新的思维,仍然可以“小才大用”,为你带来效率的提高、体力的节省和脑力的放松☺很多HTTP Server 程序都支持SSI,可能语法稍有不同,比如:IIS/Novell HTTP Server 等等,大同小异,本文要说明的是Apache 2.0 的SSI。

闲话少说,我想告诉大家的是,这是一篇实践经验总结性的文章,后文中的示例解决方案都是来自实际的网站应用中。

其中的一些想法和概念会给你带来提示性的参考或者直接拿为所用。

下图展示了)图 1系统环境安装这不是一篇教你如何配置Apache 的文章,但为了在你在本地系统环境测试的方便,还是简单的说明一下。

首先可以到/网站去下载一份最新的Apache 安装文件,安装之后是否要做其他设置请自行参考相关资料,这里只说明如何开启SSI 支持的步骤。

我在本地创建了一个bnn 的文件夹,设成虚拟目录,然后就可以通过浏览器访问:http://localhost/bnn/打开Apache 的配置文件,例如:C:\Program Files\Apache Group\Apache2\conf\httpd.conf然后加入类似下面的这段代码(主要是中间的三行):黑体字部分是文件夹路径。

OK,“Restart”Apache Server (如果右下角系统栏中有apache 小图标,则左键点击选择Restart;也可以在“开始-> 程序”菜单的Apache 项下面找到Restart 命令;还可以直接在安装目录运行C:\Program Files\Apache Group\Apache2\bin \ApacheMonitor.exe 后点击Restart 按钮)。

SSI框架详细配置

SSI框架详细配置

SSI框架详细配置SSI(Server Side Includes)是一种服务器端技术,允许将不同的网页元素合并到同一个网页中。

这种技术可以提高网页的可维护性和扩展性,通过配置可以根据需要插入动态内容、文本片段或其他指令。

在接口模式下,SSI框架可以通过以下详细配置实现:1.配置服务器支持SSI:2.设置默认文件扩展名:3.定义SSI指令:- include:插入其他文件的内容;- config:设置指令的默认配置;- echo:输出指令的参数值;- set:设置变量的值;- if:根据条件来执行指令;- else:在if指令中使用,表示条件不满足时执行;- endif:表示if指令的结束。

4. 配置include指令:include指令用于插入其他文件的内容。

可以配置以下参数:- file:指定要插入的文件路径;- virtual:指定要插入的虚拟路径;- errmsg:指定在无法找到文件时的错误信息;- flastmod:显示被插入文件的最后修改时间;- fsize:显示被插入文件的大小;5. 配置config指令:config指令用于设置指令的默认配置。

可以配置以下参数:- errmsg:定义在执行指令时出错时显示的错误信息;- sizefmt:定义显示文件大小的格式;- echomsg:设置echo指令输出结果时是否显示指令名称。

6. 配置echo指令:echo指令用于输出指令的参数值。

可以配置以下参数:- var:指定要输出的变量名。

7. 配置set指令:set指令用于设置变量的值。

可以配置以下参数:- var:指定要设置的变量名;- value:指定变量的值。

8. 配置if指令:if指令用于根据条件来执行指令。

可以配置以下参数:- expr:指定条件表达式,可以包含变量比较、逻辑运算等。

以上是SSI框架详细配置的基本内容。

通过合理配置,可以在接口模式下实现网页元素的灵活插入和动态更新,提高网页的可维护性和扩展性。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Apache SSI 教程本文参照的系统环境:●Windows XP SP2●Apache HTTP Server v2.0.55 (Win32)什么是SSI?SSI(Server Side Includes),是嵌套在HTML 网页中的指示语句,由后台服务器进行代码的解释计算。

使用SSI 可以动态的创建一部分网页内容而不需要编写复杂的JSP/ASP/PHP 等程序。

SSI 是如此的小巧以至于不应算作一门语言,因为他远没有JSP/ASP/PHP 等程序那么复杂,只有一些极其有限的语法规则。

但就算是只有这有限的一点语法规则,只要开动起你创新的思维,仍然可以“小才大用”,为你带来效率的提高、体力的节省和脑力的放松☺很多HTTP Server 程序都支持SSI,可能语法稍有不同,比如:IIS/Novell HTTP Server 等等,大同小异,本文要说明的是Apache 2.0 的SSI。

闲话少说,我想告诉大家的是,这是一篇实践经验总结性的文章,后文中的示例解决方案都是来自实际的网站应用中。

其中的一些想法和概念会给你带来提示性的参考或者直接拿为所用。

下图展示了)图 1系统环境安装这不是一篇教你如何配置Apache 的文章,但为了在你在本地系统环境测试的方便,还是简单的说明一下。

首先可以到/网站去下载一份最新的Apache 安装文件,安装之后是否要做其他设置请自行参考相关资料,这里只说明如何开启SSI 支持的步骤。

我在本地创建了一个bnn 的文件夹,设成虚拟目录,然后就可以通过浏览器访问:http://localhost/bnn/打开Apache 的配置文件,例如:C:\Program Files\Apache Group\Apache2\conf\httpd.conf然后加入类似下面的这段代码(主要是中间的三行):黑体字部分是文件夹路径。

OK,“Restart”Apache Server (如果右下角系统栏中有apache 小图标,则左键点击选择Restart;也可以在“开始-> 程序”菜单的Apache 项下面找到Restart 命令;还可以直接在安装目录运行C:\Program Files\Apache Group\Apache2\bin \ApacheMonitor.exe 后点击Restart 按钮)。

测试SSI 是否已经打开,在bnn 文件夹下面新建一个index.html 文件,打开后在里面写上:保存关闭,然后打开浏览器测试:http://localhost/bnn/如果正确的显示出类似“Wednesday, 01-Mar-2006 02:03:06 China Standard Time”这样的文字就表示SSI 开启成功!“呼~~”深呼一口气,搞掂,收工!开始SSI参考资源在正式开始之前,先介绍两个官方参考文档:Apache Tutorial: Introduction to Server Side Includes/docs/2.0/howto/ssi.htmlApache Module mod_include/docs/2.0/mod/mod_include.html这些文档在Apache 的安装文件夹中可以找到,然后通过HTTP 进行访问,并提供多国语言版本,不过没有中文(已经习惯了,谁让CN常常是被忽视的小弱国呢~,不过似乎网上流传了英雄好汉们翻译过的部分内容)。

在官方网站上可以找到最新版的文档(包括更新测试版的文档):/docs-project/SSI 语法SSI 指令的语法格式:举几个实际例子:SSI 语句是直接嵌套在HTML 页面中的,可以放置在任意的位置。

所以SSI 语句前后采用HTML 注释的写法,这样一旦服务器关闭了对SSI 的支持,此时访问页面的话,也不会直接在网页上显示出不必要的代码。

参见语法格式图示:图 2注意:1.在结尾符号“-->”的前面需要有一个空格,是不能丢掉的,曾经在一个复杂的页面中遇到一个问题是因为没有加上那个空格引起的,因为很多时候容易忽略到这个小问题,而往往最难纠错的就是这些小问题引起。

2.SSI 不区分大小写,包括元素名称、变量名称,大写和小写都是允许的。

良好的书写格式可以帮助你更好的调试代码,清晰易查找,特别是在写非常复杂的SSI 的时候,因为没有软件工具可以自动对SSI 语句进行排版(因为大多数工具会把SSI 语句当作普通的HTML 注释处理,Dreamweaver 只能识别include 元素的SSI 指令语句),所以就需要在书写的时候自己整理代码,养成良好习惯,注意大小写和上下文的缩进关系等。

书写格式的约定(推荐格式,并非强制):●元素和属性使用小写字母;●环境变量都使用大写字母;●合理的缩进,在使用if 语句嵌套的时候推荐使用1 tab(占4 space)缩进,以变更清晰的显示层次关系。

SSI 使用对于SSI 具体的使用是否有些不清楚呢?下面列出一份完整的示例代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Learning Apache SSI</title><link href="includes/style.css" rel="stylesheet" type="text/css" /></head><body><!--#include virtual="/bnn/ssi/header.ssi"--><div id="Main"><div id="LeftNav">Left Navigation</div><div id="RightNav">Right Navigation</div><div id="Content"><p>This is "<a href="http://<!--#echo var='SERVER_NAME' -->">Learning Apache SSI</a>" testing page!</p><p>Hello SSI</p><p>Today is: <!--#echo var="DATE_LOCAL" --></p></div></div><!--#include virtual="ssi/footer.ssi"--></body></html>说明:1.SSI 可以插入在网页的任意地方;2.属性值要合理使用双引号和单引号,例如“<!--#echo var='SERVER_NAME' -->”这个位置,大多数情况下,SERVER_NAME使用双引号不会出现问题,但在一些复杂的网页里面仍然会造成歧义,Apache 无法识别正确的引号配对匹配。

变量和数据类型SSI 中的变量分为自定义变量和环境变量。

自定义变量使用set 命令来创建:说明:var 属性值就是变量名称;value 的属性值就是变量值。

上面的语句表示,创建了一个“Protocol”的变量,变量所代表的值是“http”。

环境变量是系统已经存在的一些默认的变量和变量值,可以直接使用。

例如:说明:DATE_LOCAL 就是一个环境变量,用来显示当前本地时间。

类似的环境变量还有很多,比如常用HTTP_HOST、SERVER_NAME、DOCUMENT_URI、DOCUMENT_NAME 等等。

想知道到底有多少个可以用的环境变量么?很简单的方法:说明:printenv 命令就是这个作用,将所有的环境变量和变量当前值列表出来。

我们把上面的一行代码放入到任意一个页面中,然后通过浏览器访问这个页面:图 3看到的很乱页面,查看源代码吧:哦,原来是一个纯文本格式的,每行第一个等号前面的是环境变量名称,后面就是他所代表的字符串值。

HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)HTTP_HOST=localhostHTTP_CONNECTION=Keep-AliveHTTP_COOKIE=dbx-postmeta=grabit=2+,5+,6-,1-,4-,3-,0-&amp;advancedstuff=0-,1-,2-PATH=C:\ProgramFiles\ThinkPad\Utilities;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\IBM\Infoprint Select;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\ThinkPad\ConnectUtilitiesSystemRoot=C:\WINDOWSCOMSPEC=C:\WINDOWS\system32\cmd.exePATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSHWINDIR=C:\WINDOWSSERVER_SIGNATURE=&lt;address&gt;Apache/2.0.55 (Win32) PHP/5.1.1 Server at localhost Port 80&lt;/address&gt;SERVER_SOFTWARE=Apache/2.0.55 (Win32) PHP/5.1.1SERVER_NAME=localhostSERVER_ADDR=127.0.0.1SERVER_PORT=80REMOTE_ADDR=127.0.0.1DOCUMENT_ROOT=D:/Works/Jan-BoySERVER_ADMIN=admin@SCRIPT_FILENAME=D:/Works/Jan-Boy/bnn/printenv.htmlREMOTE_PORT=2529GATEWAY_INTERFACE=CGI/1.1SERVER_PROTOCOL=HTTP/1.0REQUEST_METHOD=GETQUERY_STRING=REQUEST_URI=/bnn/printenv.htmlSCRIPT_NAME=/bnn/printenv.htmlDATE_LOCAL=Thursday, 02-Mar-2006 11:15:45 China Standard TimeDATE_GMT=Thursday, 02-Mar-2006 03:15:45 GMTLAST_MODIFIED=Wednesday, 01-Mar-2006 10:02:13 China Standard TimeDOCUMENT_URI=/bnn/printenv.htmlUSER_NAME=&lt;unknown&gt;DOCUMENT_NAME=printenv.html数据类型:SSI 中只有一种数据类型“字符串”。

相关文档
最新文档