nginx支持ssi使用../

让nginx支持ssi,只须要在http段里增长html

ssi on;nginx

ssi_types text/shtml;apache


或者在须要支持的虚拟主机配置里增长也能够。server段里。安全


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


打开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里有定义,有兴趣的朋友能够自学一下。server


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


注释后,从新编译安装。这样nginx就能够支持 include virtual=../../ 这样的调用方法了。
源码

相关文章
相关标签/搜索