Nginx ssi 隐藏404内容


测试服务器开启 SSI 以后,可以动态引入样式和其他内容的页面片,模拟dev环境。

有时候,传到测试服务器的重构稿DEMO忘记上传页面片文件,或者已经有了样式,不需要页面片但是忘记删除引用了。就会在页面片引入的位置显示404内容,样式受影响。

Nginx可以自定义404内容,但是这种情况不适用,设置后会整个页面跳转到404页面。

解决方法如下,设置shtml文件永远不返回404:

location ~ \.shtml$ {
	if (!-e $request_filename) {
		return 200;
	}
}

更进一步,如果连shtml内容报错都想忽略的话,可以这样设置:

location / {
	ssi on;
	ssi_silent_errors off; # 关掉错误提示
	ssi_types text/shtml;
	
	root   /www;
	index  index.php index.html index.htm;
}

修改后记得先

service nginx configtest

然后再重启。

service nginx restart