Apache下开启SSI配置使html支持include包含的方法_Linux

写页面的同学通常会遇到这样的烦恼,就是页面上的 html 标签越来越多的时候,寻找指定的部分就会很困难,那么能不能像 javascript 一样写在不同的文件中引入呢?答案是有的,apache 能做到。

举个简单的例子,比如有如下的 html 文件(命名为 index.html):

<input type='text' />
<input type='button' value='press' />

一个简单的文本框和按钮,我现在想把按钮部分的 html 写在另一个 .html 的文件中(比如说叫 btn.html)然后引入到 index.html 中,要怎么做呢?

1、加载 ssi 模块

首先要加载 ssi 模块。打开 apache 的配置文件 httpd.conf,这个文件应该都已经很熟悉了,前面的文章中多次提到。找到这么一行 LoadModule ssl_module modules/mod_ssl.so,把前面的注释(#)去掉。

2016.01.11 更:

经本地测试,此步骤并不是必须的,多谢 whuper 指出。

2、添加需要的文件类型

同样在 httpd.conf 文件下找到如下两行代码:

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

有注释的话一样去掉注释。因为使用 ssi 技术的默认文件名为 .shtml,所以我们需要在配置文件中对 .shtml 后缀名进行设置,并按自己的需求设置需要对 ssi 技术进行解析的文件类型设置。

比如这里我要用 .html 的文件进行操作,所以可以在上面两行代码末添加,比如这样:

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

3、添加 INCLUDES
还是在 httpd.conf 文件中,找到这样一行 Options Indexes FollowSymLinks,在后面添加 INCLUDES,变成这样:

Options Indexes FollowSymLinks INCLUDES

需要注意的是,ssi 可以利用 shell 来执行命令,因此这个功能是有危险的,它会执行任何包含在 exec 标记中的命令,如果你的用户有权限修改你的网页内容,建议把该功能关闭。当然你还可以加上IncludesNOEXEC 参数,来关闭 exec 功能,同时又保留 SSI 。此时改为: Options Indexes FollowSymLinks INCLUDES IncludesNOEXEC

4、重启 apache

最后一点,重启 apache 千万不能忘记,有些童鞋刚开始配置 apache 的时候,经常会说怎么不起作用啊,很多时候就是忘记重启了。

5、实践
通过这样的配置我们就能在 html 页面中引入 html 文件了,比如这样:

<input type='text' />
<!--#include virtual="btn.html" -->

也可以用 file 参数:

<input type='text' />
<!--#include file="btn.html"-->

有什么区别呢...

include 元素能按 file 属性或 virtual 属性判断应该包含的文件。file 属性是一个相对于当前目录的文件路径,即不能是一个绝对路径(以 "/" 开头)或包含 "../" 的路径,也就是说被包含文件可以在同一级目录或其子目录中,但不能在上一级目录中。virtual 属性可能更有用,它是一个相对于被提供的文档的URL ,可以以 "/" 开头,但必须与被提供的文档位于同一服务器上,virtual 文件名是 Web 站点上的虚拟目录的完整路径。

通俗地说,virtual 相当于绝对路径(从服务器根目录出发),而 file 相当于相对路径(而且文件还不能在上级目录)。所以一般用 virtual 就 ok 了。

参考:

让Apache支持SHTML(SSI)的配置方法

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索apache
ssi
apache ssi include、apache开启ssi、nginx ssi include、ssi include、ssi include virtual,以便于您获取更多的相关知识。

时间: 2024-05-20 19:51:29

Apache下开启SSI配置使html支持include包含的方法_Linux的相关文章

Apache开启SSI(shtml)配置使html支持include的步骤

举个简单的例子,比如有如下的 html 文件(命名为 index.html): <input type='text' /><input type='button' value='press' /> 一个简单的文本框和按钮,我现在想把按钮部分的 html 写在另一个 .html 的文件中(比如说叫 btn.html)然后引入到 index.html 中,要怎么做呢? 1.加载 ssi 模块 首先要加载 ssi 模块.打开 apache 的配置文件 httpd.conf,这个文件应该都

linux下因为系统编码问题造成乱码的快速解决方法_Linux

最近一段时间遇到一些润乾的应用在linux系统下面乱码的问题,最后检查后都发现是客户的linux系统默认编码设置的不正确造成的,这种原因造成乱码的现象一般都是程序里面写死了的中文字符能正常展现,但是从数据库中取出来的或者从程序中读出来的中文字符就会出现乱码. 下面就介绍一下由于linux系统编码设置不正确造成润乾报表应用乱码问题的解决办法. 第一步:检查linux的系统编码. 检查linux的系统编码,确定系统是否支持中文.在linux系统的终端中输入命令:locale,就会看到打印出的系统编码

linux apache下虚拟主机配置方法_Linux

假设VPS的IP是58.130.17.168,有两个域名指向该IP,分别是domain1.com, domain2.com,        修改/etc/httpd/conf/httpd.conf,在文件的最后加入:      ServerName 58.130.17.168    NameVirtualHost 58.130.17.168         <VirtualHost 58.130.17.168>            ServerName domain1.com        

Gentoo 下安装与配置Nginx+ MySQL + PHP (fastcgi) 环境步骤分享_Linux

一.安装 Nginx 一条命令搞定:USE=fastcgi emerge nginx 新建用户和组:groupadd wwwuseradd www -g www Nginx 安装好后默认会添加 nginx 组和 nginx 用户,不过我本身还是习惯新建个 www 组和 www 用户来做 HTTP 服务用户.若今后 HTTP 服务器更换为 apache 或是 lighttpd 时,用户名和用户组可以不变. 二.安装 MySQL 在装 PHP 前必须先装 MySQL,因为 PHP 里的 MySQL

CentOS Linux 下配置Apache2+PHP5+MySQL5+GD库的方法_Linux

先安装MYSQL 服务器 解压MySQL,把所有文件复制到/usr/local/mysql [root@Bleach usr]# groupadd mysql [root@Bleach usr]# useradd -g mysql mysql [root@Bleach mysql]# cd /usr/local/mysql [root@Bleach mysql]# scrīpts/mysql_install_db --user=mysql  [root@Bleach mysql]# chown 

让apache也支持asp环境的方法_Linux

注:注意上面方法只限于在windows下 并且装了Framework一般win7已经自带有了 1.首先 下载一个mod_aspdotnet-2.2.0.2006-setup-r2.msi2.安装好后在apache的moudles目录会生成一个mod_aspdotnet.so文件3.修改httpd.conf 在文件的末尾加上下面代码 复制代码 代码如下: #asp.net    LoadModule aspdotnet_module "modules/mod_aspdotnet.so" 

Linux下用SSH退出符切换SSH会话的实现方法_Linux

这个技巧非常实用. 尤其是远程登陆到一台主机 A, 然后从 A 登陆到 B, 如果希望在 A 上做一些操作, 还得再开一个终 端, 很是麻烦.  当使用 ssh 从本机登录到远程主机时, 可能希望切换到本地做一些操作, 然后再重新回到远程主机. 这个时候, 不需要中 断 ssh 连接, 只需要按照如下步骤操作即可:  1.登入远程主机: localhost$ ssh 172.16.1.165 oracle@172.16.1.165's password: Last login: Fri Mar

Linux下SVN服务器自动更新文件到Web目录的方法_Linux

说明: 服务器操作系统:CentOS 服务器IP:192.168.21.134 SVN安装路径:/usr/local/svn SVN项目路径:/home/svn SVN登录账号:osyunwei SVN登录密码:123456 Web站点根目录:/home/web实现目的: 当svn项目中有任何修改更新时,系统会自动实时从svn中检出文件并同步到Web站点根目录 具体操作: 一.使用SVN中post-commit实现自动实时从svn中检出文件并同步到Web站点根目录 cd /home/svn/ho

linux查看cpu是否支持64位的方法_Linux

查看cpuinfo中是否有lm,如果有lm表示支持64位,lm的意思是long mode,具体命令如下: 复制代码 代码如下: cat /proc/cpuinfo  | grep flags 检查输出里面是否有 lm 字符或 复制代码 代码如下: cat /proc/cpuinfo  | grep flags | grep lm | wc -l 输出结果大于 0 表示支持64位