设置特定路径的错误页面

时间:2017-04-04 07:39:18

标签: amazon-cloudfront

我正在使用ECS作为webapp,我为代码404和502设置了错误页面定义。我当前的设置返回一个静态的maintenance.html文件(托管在S3上)并返回200的代码。我必须返回200,否则Outlook(托管我的应用程序)将不会呈现返回的html,而是显示一个丑陋的错误页面。 我遇到的问题是,从我的客户端应用程序到我的服务器的后续API调用也可能返回404.使用当前设置,CloudFront拦截此回复,并返回带有代码200的maintenance.html。所以现在我的应用程序并不知道任何错误,后来无法解析回复。

有没有办法定义错误页面只处理特定请求?对于我的使用,我希望他们只处理对我的/static/index.html文件的调用。如果服务器实际上缺少某些其他文件/ API调用,我希望我的客户端获得404,以便它可以正确处理它。

1 个答案:

答案 0 :(得分:2)

因此,根据我阅读的文档回答您的问题,目前无法从cloudfront错误页面配置中执行此操作。

但是,我们遇到了类似的问题,但在我们的案例中,API调用返回的是500错误,带有s3自定义错误html,而不是我只希望API调用实际出现的服务器错误。

在这种情况下,我们最终要做的是在后端处理500个错误,如果请求网址具有API调用模式,则该处理程序将返回我们在cloudfront错误页面中未使用的响应代码( http错误代码406),然后处理程序仅在对api url模式进行故障转移时,才使用406响应代码和整个错误(而不是s3响应html的500)进行答复。我知道这并不能解决您想要的问题,但是在Cloudfront允许基于路径模式的自定义错误响应之前,您可能会发现它很有用。