nginx下使用SSI

主要内容

    • 什么是SSI
    • nginx开启SSI
    • SSI常用命令
    • SSI获取并使用查询参数
      • 在页面文件中获取
      • 在nginx的配置文件中设置
      • 使用参数

什么是SSI

SSI:Server Side Include,是一种基于服务端的网页制作技术。它的工作原理是:在页面内容发送到客户端之前,使用SSI指令将文本、图片或代码信息包含到网页中。对于在多个文件中重复出现内容,使用SSI是一种简便的方法,将内容存入一个包含文件中即可,不必在所有文件中重复。通过一个非常简单的语句即可调用包含文件,此语句指示 Web 服务器将内容插入适当网页。

nginx开启SSI

在nginx.conf设置。三个最基本的指令:

  • ssi on;
    • 开启ssi支持,默认是关闭的
  • ssi_silent_errors on;
    • 开启后在处理SSI文件出错时不输出错误提示:"[an error occurred while processing the directive] "。默认是关闭的
  • ssi_types text/shtml;
    • 默认是text/html。如果需要shtml支持,则需要设置:ssi_types text/shtml。

这三行的配置可以放在nginx的三个作用域下面(http, server, location)。

location / {
    ssi on;
    ...
}

更多指令可参看:nginx指令文档

SSI常用命令

命令语法如下:


最常用的应该是include:




file文件名是一个相对路径,该路径相对于使用 #include 指令的文档所在的目录。被包含文件可以在同一级目录或其子目录中,但不能在上一级目录中。

virtual文件名是一个web请求路径,当然应该是本服务器上的。可以是绝对或相对路径,但不能通过".."访问上层路径。

其它命令还是看这儿吧:nginx命令文档

SSI获取并使用查询参数

获取参数有两种方式:

  • 在页面文件中获取;
  • 在nginx的配置文件中设置。

在页面文件中获取

在页面中写如下代码取得p1和p2参数:





正则表达式中的"\b"用来划分单词的边界。“?P”将解析出的内容赋给变量p1。

在nginx的配置文件中设置

nginx.conf中如下代码:

location /sjjy {
	ssi on;
    ...
	set $p3 $arg_p3;
}

可将url中的查询参数p3的值赋给变量p3,供在页面中使用。(在nginx中取url中?后面的变量的值是通过$arg_作为前缀获取的。)

跟从页面中获取方式不同的是,当url中没有参数p3时,通过在配置文件中给p3赋值,p3也有一个空字符串值;但通过页面中代码解析方式,会得到一个空值(none)。

使用参数

可以用echo命令输出:


也可以在其它命令中引用:


你可能感兴趣的:(技术,网页开发,nginx,SSI)