在Apache和nginx中实现自定义错误页面 – 使用ErrorDocument和error_page

从Apache HTTP或Nginx获得默认产品错误页面并不好看,它会暴露版本信息,导致信息泄露 vulnerability

如果您还没有为您的Web应用程序实现自定义错误页面,那么您必须考虑出于许多原因进行自定义,包括以下原因。

  • 品牌 – 显示定制消息与您的 brand logo 和几行消息,以使访问者意识到问题,并链接到相关团队进行联系。
  • 漏洞 – 如果您正在处理PCI DSS合规环境,则必须考虑修复信息泄露漏洞,该漏洞存在于默认产品错误页面中。
  • 更好的用户界面 – 这完全是关于更好的用户体验,您也可以在错误页面上提供。例如-如果用户请求的内容不存在,那么Web服务器将提供404默认错误页面,而用户很可能会关闭会话。如果有一个自定义页面,用户可以在其中搜索或显示相关项目和适当的导航,那会怎么样?

听起来不错吧?

好吧,我确信通过这种方式,您将保留访问者继续访问网站并改善跳出率。

还没有被说服?

让我们来看看…

这是Nginx的默认“404未找到”页面

当您看到此页面时,您会怎么做?

很可能,您会关闭它。

这是我实施的自定义“404”页面。

看起来好多了吧?

很可能,您要么会转到“首页”,要么会点击下面显示的搜索项之一。这就是自定义页面的帮助。

现在您知道了优势,现在是时候实施它们了。您可以在许多 HTTP status code 事件中拥有自定义页面。我认为以下是必不可少的。

  • 404-未找到
  • 403-禁止
  • 500-内部服务器错误
  • 503-服务不可用
  • 504-网关超时

先决条件

我假设您已经构建了自定义页面。如果您需要一些404图像,可以从 Elements 获取。

在Apache HTTP中实施

有多种方法可以做到这一点。例如-您可以使用Rewrite或ErrorDocument指令来完成此操作。我将解释如何使用ErrorDocument指令来完成此操作。

  • 登录到Apache HTTP服务器
  • 转到您拥有httpd.conf文件的apache conf文件夹
  • 备份httpd.conf文件
  • 修改httpd.conf并添加以下内容ErrorDocument
ErrorDocument 404 /path/of/custom/error/file
ErrorDocument 403 /path/of/custom/error/file
ErrorDocument 500 /path/of/custom/error/file
ErrorDocument 503 /path/of/custom/error/file
ErrorDocument 504 /path/of/custom/error/file

保存httpd.conf并重新启动Apache服务器

尝试访问不存在的内容,您应该看到一个自定义错误页面,而不是默认页面。

注意:在这些HTTP状态返回代码事件中,您还可以重定向到其他URL。要进行重定向,只需在每个代码旁边添加一个URL,如下所示。

ErrorDocument 404 https://yaoweibin.com/errorpage
ErrorDocument 403 https://yaoweibin.com/errorpage
ErrorDocument 500 https://yaoweibin.com/errorpage
ErrorDocument 503 https://yaoweibin.com/errorpage
ErrorDocument 504 https://yaoweibin.com/errorpage

在Nginx中实施

  • 登录到Nginx服务器
  • 转到nginx.conf文件位置
  • 像往常一样备份conf文件,并在http块下添加以下内容
error_page 404 /path/of/custom/error/file;
error_page 403 /path/of/custom/error/file;
error_page 500 /path/of/custom/error/file;
error_page 503 /path/of/custom/error/file;
error_page 504 /path/of/custom/error/file;

保存文件并重新启动Nginx以使其生效。

结论

你看,这个小小的改变可能会带来巨大的影响,那么为什么不去实施呢?

类似文章