避免显示在nginx ssi包含中找不到404

时间:2015-03-18 18:38:58

标签: nginx ssi

我试图从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

0 个答案:

没有答案