你是否曾经或正在为如何能够在最短的时间内完成对一个包含上千个页面的网站的修改而苦恼?那么可以看一下本文的介绍,或许能够对你有所帮助。
什么是SSI?
SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是HTML文件中,可以通过注释行调用的命令或指针。SSI 具有强大的功能,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,动态显示时间和日期,以及执行shell和CGI脚本程序等复杂的功能。SSI 可以称得上是那些资金短缺、时间紧张、工作量大的网站开发人员的最佳帮手。
SSI最初在NCSA服务器平台上推出,在Apache服务器中得到扩展和加强,目前已经可以在几乎所有的服务器上运行。本文将主要结合Apache服务器介绍SSI的使用方法。
如何启动SSI?
在Apache服务器下,可以通过直接编辑服务器配置文件或者在需要使用SSI的目录中创建.htaccess文件启动SSI。具体来说,过程如下:
1.服务器配置文件
假如用户具有对服务器配置文件的访问权限,可以通过编辑文件access.conf和srm.conf启动SSI。
首先使用Telnet远程登录服务器,找到配置文件的存放目录。一般来说,Apache服务器的配置文件都被保存在“/usr/local/etc/httpd/conf”目录下。使用任何一种文字编辑器打开文件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
用户的配置文件中可能没有上述的注释指令行,但是只要找到以AddType开头的两行并且去掉每一行最前面的“#”符号即可。
保存所做的修改,然后再打开文件access.conf。用户需要在文件中找到设置DocumentRoot(根文件)的部分。一般来说该段文本如下,但是不排除
# This should be changed to whatever you set DocumentRoot to.
# This may also be "None", "All", or any combination of "Indexes",
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的话,确实没有必要让服务器解析每一个页面。假如用户只希望在几个非凡页面中使用SSI,可以将文件的后缀名改为.shtml,这样服务器就可以只解析包含SSI的.shtml文件。另一方面,假如有多个页面使用了SSI,但是用户不希望使用.shtml的后缀名时,可以在.htaccess文件中使用以下命令行:
AddType text/x-server-parsed-html .html
SSI语法
SSI在使用时遵循以下格式:
其中,directive是向服务器发送的指令名称,parameter是指令的操作对象,而value则是用户希望得到的指令处理结果。
所有的SSI命令都是以“
为了更加合理的组织站点的内容,用户可以在根目录下创建includes子目录来存放所有的包含文件。Virtual参数可以通知服务器所要包含的是一个虚拟文件,即文件和当前被解析的文档不是位于同一个目录,而是存放在其它目录中。服务器会根据该参数的值找到根目录下的includes子目录。使用这种方法,用户可以把所有HTML文档包含的文件放在一个目录中,而根据相互之间的关系把不同的页面保存在不同的目录或子目录中。无论服务器解析哪一个文档都可以找到所包含的文件,不会产生任何错误。
不过这里有一个小问题需要解决。一般我们都会在页面中加入一些TITLE和META标签,假如我们规定所有的页面都调用相同的页眉文件的话,就显得很不灵活。用户碰到这样的问题时,可以使用两个包含文件,一个设置TITLE标签前的内容,另一个设置META标签后的部分,而在两个包含文件之间则可以添加任何定制内容。例如:
这里放置页面内容
从上我们可以看出通过在页面中包含页眉和页脚可以大大减少站点更新的工作量。但是假如我们希望动态显示一些内容,例如页面的最后更新时间等该怎么办呢?没问题,我们可以把包含文件使用.html后缀保存,这样就可以在包含文件中调用其它的包含文件。
File:给? 当前目录的相对路径,其中不能使用“../”,也不能使用绝对路径。例如:
这就要求每一个目录中都包含一个header.html文件。当然,采用这样的方法并不比更新每一个页面简单多少,但是假如用户只更新一、两个文件的话还是很方便的。例如,假如我们不希望让一个对HTML不熟悉的人直接改动网站中的新闻页面的话,可以只让他更新一个单独的文本文件,然后再把该文件包含到HMTL文档中,这样即不会破坏原页面,同时又更新了内容,两全其美。
3.Echo:
Echo命令可以显示以下各环境变量:
DOCUMENT_NAME:显示当前文档的名称。
显示结果为:
index.html
DOCUMENT_URI:显示当前文档的虚拟路径。例如:
显示结果为:
/YourDirectory/YourFilename.html
随着网站的不断发展,那些越来越长的URL地址肯定会让人头疼。假如使用SSI,一切就会迎刃而解。因为我们可以把网站的域名和SSI命令结合在一起显示完整的URL,即:
http://YourDomain
QUERY_STRING_UNESCAPED:显示未经转义处理的由客户端发送的查询字串,其中所有的非凡字符前面都有转义符“”。例如:
DATE_LOCAL:显示服务器设定时区的日期和时间。用户可以结合config命令的timefmt参数,定制输出信息。例如:
显示结果为:
Saturday, the 15 of April, in the year 2000
DATE_GMT:功能与DATE_LOCAL一样,只不过返回的是以格林尼治标准时间为基准的日期。例如:
LAST_MODIFIED:显示当前文档的最后更新时间。同样,这是SSI中非常实玫囊桓龉δ埽?灰?

PHP在现代编程中仍然是一个强大且广泛使用的工具,尤其在web开发领域。1)PHP易用且与数据库集成无缝,是许多开发者的首选。2)它支持动态内容生成和面向对象编程,适合快速创建和维护网站。3)PHP的性能可以通过缓存和优化数据库查询来提升,其广泛的社区和丰富生态系统使其在当今技术栈中仍具重要地位。

在PHP中,弱引用是通过WeakReference类实现的,不会阻止垃圾回收器回收对象。弱引用适用于缓存系统和事件监听器等场景,需注意其不能保证对象存活,且垃圾回收可能延迟。

\_\_invoke方法允许对象像函数一样被调用。1.定义\_\_invoke方法使对象可被调用。2.使用$obj(...)语法时,PHP会执行\_\_invoke方法。3.适用于日志记录和计算器等场景,提高代码灵活性和可读性。

Fibers在PHP8.1中引入,提升了并发处理能力。1)Fibers是一种轻量级的并发模型,类似于协程。2)它们允许开发者手动控制任务的执行流,适合处理I/O密集型任务。3)使用Fibers可以编写更高效、响应性更强的代码。

PHP社区提供了丰富的资源和支持,帮助开发者成长。1)资源包括官方文档、教程、博客和开源项目如Laravel和Symfony。2)支持可以通过StackOverflow、Reddit和Slack频道获得。3)开发动态可以通过关注RFC了解。4)融入社区可以通过积极参与、贡献代码和学习分享来实现。

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver Mac版
视觉化网页开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3汉化版
中文版,非常好用