Cloudfront中特定于语言的404错误页面

时间:2019-01-22 06:35:54

标签: amazon-s3 amazon-cloudfront

我有一个服务于s3存储桶的cloudfront发行版。为了使页面成为多语言,我添加了一个lamba @ edge函数,该函数分析Accept-Language标头并将/<page>重定向到/en/<page>/de/<page>

重定向使用303返回码进行,以便用户获得/en/<page>作为浏览器中显示的路径,并可以通过转到/de/<page>来切换语言。

行!但是,如果是404,该怎么办?如果我在S3或cloudfront中配置了自定义404页面,并且用户请求/de/<non-existing-page>,他将被重定向到自定义404页面(例如/error-pages/404)。但是该页面未翻译!

有没有一种方法可以使404页面语言特定?取决于用户来自/en/<page>还是/de/<page>

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。

  1. 使用2个S3存储桶(或尽可能多的语言),每种语言使用一个,并将每种语言的文件放入相应的存储桶中
  2. 将每个存储桶的ErrorDocument配置为特定于语言的404页面
  3. 在CloudFront发行版中,为每种语言配置一种来源和行为,以使PathPattern /<language>/*指向从s3存储桶中为语言<language>提取的来源