nginx支持ssi使用../

让nginx支持ssi,只需要在http段里增加

ssi on;

ssi_types text/shtml;

或者在需要支持的虚拟主机配置里增加也可以。server段里。

但是相对apache来说,nginx更加严格,对于include virtual=../../ 这样的使用方法是不支持的,会在error日志中报错“unsafe URI”。那么nginx就不能做到这一点了吗?

打开nginx的ssi源码src/http/modules/ngx_http_ssi_filter_module.c可以看到这样一段

if (ngx_http_parse_unsafe_uri(r, uri, &args, &flags) != NGX_OK) {
        return NGX_HTTP_SSI_ERROR;
    }

这段是在判断当前uri是否满足nginx的安全设置。函数ngx_http_parse_unsafe_uri在src/http/ngx_http_parse.c里有定义,有兴趣的朋友可以自学一下。

也就是说注释掉这段,就可以绕开nginx的安全设定了。

注释后,重新编译安装。这样nginx就可以支持 include virtual=../../ 这样的调用方法了。

时间: 2024-08-10 23:28:04

nginx支持ssi使用../的相关文章

CentOS 6.5 Nginx 的编译安装、以及让nginx 支持 SSI 相对路径写法

1. nginx 下载 进入 http://nginx.org/en/download.html 下载,我是选择的 "Stable version" 稳定版本的下载 # wget http://nginx.org/download/nginx-1.6.2.tar.gz 2. 解压编译安装 # tar -zxvf nginx-1.6.2.tar.gz # cd nginx-1.6.2 安装一些nginx用到的依赖软件,如果不开启ssl可以不用安装openssl,回头用到时可以返回这里重新

apache和nginx支持SSI配置

一. 前言 SSI是一种类似于ASP的基于服务器的网页制作技术.将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本.图形或应用程序信息包含到网页中.例如,可以使用 SSI 包含时间/日期戳.版权声明或供客户填写并返回的表单.对于在多个文件中重复出现的文本或图形,使用包含文件是一种简便的方法.将内容存入一个包含文件中即可,而不必将内容输入所有文件.通过一个非常简单的语句即可调用包含文件,此语句指示 Web 服务器将内容插入适当网页.而且,使用包含文件时,对内容的所有更改只需在一

Nginx配置SSI

一.什么是SSISSI:Server Side Include,是一种基于服务端的网页制作技术,大多数(尤其是基于Unix平台)的web服务器如Netscape Enterprise Server等均支持SSI命令.它的工作原因是:在页面内容发送到客户端之前,使用SSI指令将文本.图片或代码信息包含到网页中.对于在多个文件中重复出现内容,使用SSI是一种简便的方法,将内容存入一个包含文件中即可,不必将其输入所有文件.通过一个非常简单的语句即可调用包含文件,此语句指示 Web 服务器将内容插入适当

nginx配置ssi实现页面拆分

在做一个网站时,页面上会有很多重复的内容,每个页面写一遍很冗余,修改时还容易遗漏,所以可以把公共的部分写好,放在单独的HTML中,用时引用就行了. nginx配置ssi可以将单个页面拆分成一个一个的小页面,访问页面时将多个子页面合并渲染输出,通过cms去管理这些小页面,实现当要更改部分页面内容时只需要更改具体某个小页面. 1. 什么是SSI SSI:Server Side Include,是一种基于服务端的网页制作技术,大多数(尤其是基于Unix平台)的web服务器如Netscape Enter

关于Nginx支持.htaccess的分析

http://www.40099.cc/funny/184.html 之前曾在Typecho开发群中与王轶讨论了关于Nginx支持.htaccess文件的问题.王轶认为,Nginx能够支持.htaccess规则,且兼容Apache规则.我认为,Nginx支持使用.htaccess文件来存储Nginx的伪静态规则,不兼容.htaccess规则. 我之所以这么说,是有原因的,我查阅了Nginx的官方文档文档1/文档2,文档1是Nginx的Rewrite模块的doc,详细的解释了nginx的rewri

让Apache 和nginx支持跨域訪问

1,怎样让Apache支持跨域訪问呢? 步骤: 改动httpd.conf,windows中相应的文件夹是:C:\wamp\bin\apache\Apache2.4.4\conf\httpd.conf 把LoadModule headers_module modules/mod_headers.so 前面的凝视删除 改动 改为: 即: <Directory /> AllowOverride none Require all granted Header set Access-Control-Al

linux+php5.4+nginx+支持redis安装部署

系统环境 [[email protected]~]# cat /etc/redhat-release CentOSrelease 6.5 (Final) [[email protected]~]# uname -a Linuxlocalhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013x86_64 x86_64 x86_64 GNU/Linux php5.4 yum源 rpm -Uvhhttp://

四、配置nginx支持php

                                四.配置nginx支持php     在Ubuntu下搭建LNMP环境.编译安装mysql,nginx,php.最后在LNMP前提下安装composer,并且安装laravel框架.第四步,配置nginx支持php. 首先建立存放网页文件的目录,执行"sudo mkdri /usr/local/server/www".然后进入到该目录中,"cd/usr/local/server/www". 修改ngin

动态扩展Nginx支持Lua功能

一.Lua说明: Lua 是一个简洁.轻量.可扩展的脚本语言,也是号称性能最高的脚本语言,用在很多需要性能的地方,比如:游戏脚本,nginx,wireshark的脚本,当你把他的源码下下来编译后,你会发现解释器居然不到200k,非常变态.很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性.可扩展性. 二.实验环境: 192.168.1.194服务器(centos 6.5 final版本) nginx版本:nginx-1.6.1 三.安装配置: 这里假定已经安装好了nginx(安装