我试图从apache迁移到nginx,但我在apache中最常用的功能之一就是ssi包含。我正在测试nginx如何处理ssi,但我遇到了一些问题...
如果包含虚拟文件不存在,我会嵌入404页面,甚至不会发生[发生错误]消息。使用apache ssi,如果文件不存在,则错误显示为注释。
另一点是,使用apache SSIErrorMsg指令我可以在服务器配置级别设置错误文本,但我无法在nginx中找到它,只是html中的<!--# config errmsg="custom error" -->
。我没有在nginx文档中看到像SSIErrorMsg这样的指令
nginx 404 ssi错误:
<html>
<head>
<title>simple</title>
</head>
<body>
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.6.2</center>
</body>
</html>
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
</body>
</html>
但是在apache中:
<html>
<head>
<title>simple</title>
</head>
<body>
<!-- Error -->
</body>
</html>
错误消息只出现在nginx中,例如我写了一个包含类似拼写错误的ssi包含
<!--#include virtualll="example.html"-->
有没有办法显示错误而不是嵌入404文件以防万一?
这是nginx服务器配置:
server {
listen 80;
server_name demo.localhost;
ssi on;
ssi_silent_errors off;
location / {
root /var/www/demoweb;
}
}
如果我设置ssi_silent_errors off;
没有显示任何内容,但我想要像<!--Error-->
那样的apache