本文介绍了S3 www to non-www重定向将/index.html附加到URL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我的域是example,我已经根据this博客文章使用两个S3存储桶和两个CloudFront发行版将www设置为非www重定向,并在www存储桶中设置指向example的重定向。
这很好用,但它实际上会重定向到example/index.html。是否可以将其重定向到example?
推荐答案您的发行版配置中是否有index.html?我不知道为什么会看到附加了index.html的重定向,但更简单的方法是使用CloudFront函数(可在CloudFront控制台的函数部分中找到),这样做不需要两个存储桶,并且可以更好地控制重定向。下面是一个例子:
function handler(event) { var request = event.request; var host = request.headers.host.value; if (host === 'www.example') { var response = { statusCode: 301, statusDescription: 'Moved Permanently', headers: { 'location': { 'value': `example${request.uri}` } } }; return response; } return request; } 您可以将其设置为查看器请求函数,并将其附加到缓存行为。使用此设置,您只需将Example和www.example都设置为备用域名的单个分发版本。 如果您需要将index.html设置为根对象,也可以在主机不是www.example时在函数中通过修改request.uri来完成-这样,如果您在发行版中有任何对index.html的引用,您可以将其全部移到此函数。以下是一个示例函数,它演示了如何在将请求发送到S3之前重写URI(确保面向外部的URL保持不变): github/aws-samples/amazon-cloudfront-functions/tree/main/url-rewrite-single-page-apps更多推荐
S3 www to non
发布评论