简短的版本 :我们希望Apache在获得500状态时捕获并返回类似404的东西。 有没有办法做到这一点?
更长的版本 :这些服务器运行的应用程序不是我们的,而且最近他们没有通过PCI符合性扫描,因为如果您弄糟了主机,可能会出现500个状态错误。 从长远来看,我们将把它们移动到不同的networking,因此它们不需要符合PCI规范,但是从短期来看,我们希望能够快速修复,而不是显示应用程序返回的500状态。 这两个应用程序都通过Apache接受他们的请求。
我希望/假设这将是一个mod_rewrite规则,但不知道根据状态码使mod_rewrite更改。
如果我理解正确的话,您想要在日志中捕捉到500错误状态,同时向客户和扫描器呈现一个定期错误的页面。
一些networking商店这样做是为了“把”网站上更严重的错误“隐藏起来”。 生成500错误状态的页面在DOS攻击中可能是一个好的目标。 扫描该站点以查找生成500服务器错误的页面,在这些页面上敲击,一遍又一遍地触发错误代码,等待数据库在下面融化。
您可以使用ErrorDocument 500 yourerrorpage.html来显示自定义错误页面
由于500错误导致PCI扫描失败? 这有点奇怪 无论如何…
设置一个默认的VirtualHost (你应该已经有一个),它不提供任何服务; 任何对它的请求应该导致404。
<VirtualHost *:80> ServerName * DocumentRoot /var/empty </VirtualHost>
使用输出filter比重写规则更好。
一个mod_rewrite规则将不得不在一边做一个子请求,然后根据返回的内容决定要使用哪个URL。 如果子请求成功,则内容仍将被丢弃,并且您将不得不重复作为主要请求的事务。
另一方面,输出filter可以拦截500响应并将其转换为404。