测试服务器开启 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