nginx和php下的ssi不生效问题。

378 阅读1分钟

什么是ssi

SSI:Server Side Include,是一种基于服务端的网页制作技术,大多数(尤其是基于Unix/linux平台)的web服务器如Netscape Enterprise Server等均支持SSI命令。

nginx配置ssi

ssi: 默认值off,启用ssi时将其设为on
ssi_silent_errors: 默认值off,开启后在处理SSI文件出错时不输出错误提示"[an error occurred while processing the directive]"。
ssi_types: 默认是text/html,所以如果需支持html,则不需要设置这句,如果需要支持shtml则需要设置:ssi_types text/shtml

问题

在昨天我们公司网站发现网页里边嵌入ssi并不生效。也纠结了很久,一开始认为是nginx的原因,并且重新配置了ssi,但是后来经过测试发现,html的ssi是生效的,php的ssi并不生效,所以又去检查php。经过很长时间的查找和尝试,最后找到问题所在。

原因:php内部进行压缩,压缩之后nginx不能识别

解决:修改php.ini

禁掉 zlib.output_compression = On