我使用CloudFront在S3上托管静态网站。
现在,www.example.com
和example.com
都返回相同的内容,但我只希望example.com
能够正常工作,而www.example.com
则需要重定向到example.com
。
我知道我可以创建另一个将重定向到主存储桶(example.com
)的存储桶,但是我会为每个网站提供两个存储桶和两个CloudFront分配,并且它会使一团糟。
还有另一种方法可以实现吗?
答案 0 :(得分:2)
您提到example.com时似乎正在使用DNS服务
但是,我不知道你在做什么DNS服务
由于路线53是常用的,因此在路线53的基础上进行描述
域名在example.com的基础上描述。
您可以通过编程方式将example.com的重定向编码到www.example.com
但是,通常在AWS级别解决此问题。
需要两个存储桶才能在AWS级别解析。
然后,如果您要求www.example.com,您将被重定向到example.com。
如果您有任何疑问,请随时提出! 谢谢。
更新1
如果您为example.com和www.example.com激活CloudFront CNAME,则
您只需一个桶即可获得example.com和www.example.com请求
但是,建议不要这样做,因为网址的一致性不好。
答案 1 :(得分:0)
最近 AWS 推出了 Cloudfront 功能。您可以猜到它允许您使用自定义函数代码在云端操作 http 请求/响应。
在他们的介绍性博客中,他们介绍了这个特定的重定向用例。根据他们的博客 Introducing CloudFront Functions – Run Your Code at the Edge with Low Latency at Any Scale:-
<块引用>URL 重写和重定向:生成响应以将请求重定向到不同的 URL。例如,将未经身份验证的用户从受限页面重定向到登录表单。 URL 重写也可用于 A/B 测试。
我已经尝试过这种方法。我做了什么:-
redirect_www_to_naked
function
与此分发相关联。www
中的 Route 53
子域这就是我的函数的样子:-