如果不是标准的http错误,如何将错误重定向到我的自定义错误页面?
示例:
我已经使用ssl配置了apache,通过https和客户端身份验证访问网站(服务器和客户端都有CA签名的证书)。如果客户端没有证书,我将从ssl获得标准错误消息:
安全连接失败错误
代码:ssl_error_handshake_failure_alert
但我需要将此错误重定向到我的自定义错误页面。
答案 0 :(得分:2)
你不能轻易。
在TCP级别发生SSL错误,这意味着连接无法通过Apache的标准错误处理处理并重定向到自定义错误页面。
有一个名为mod_ssl_error(http://marcstern.tripod.com/mod_ssl_error/)的旧Apache模块,它可以完全满足您的需要,但它需要您修补并重新编译mod_ssl。
另一种选择是设置两个站点,一个使用SSLVerifyClient可选,另一个使用SSLVerifyClient require(http://www.modssl.org/docs/2.1/ssl_reference.html#ToC13)。将用户定向到第一个站点,如果可选连接有效,则将其转发到第二个站点。否则显示错误消息。这无法帮助您找出连接无法正常工作的原因,但它会让您知道出现了问题。
有关此问题的其他详细信息,请参阅https://issues.apache.org/bugzilla/show_bug.cgi?id=35083。