amazon-web-services - 如何重定向内部 URL 以使用 s3 网站以斜杠结尾
问题描述
我有一个托管在 s3 中的网站,其中包含用于缓存的云端。我想将我的内部页面重定向到末尾带有斜杠的页面,当前情况是两个版本(带有和不带有斜杠)都在工作,应该只使用斜杠,例如:https ://us.springverify.com/ api-integrations/与所有内部页面。域在 Route53 中。就像在 S3 中一样,我将无法为此使用 .htaccess 文件重定向。有什么办法可以让我从云端或 S3 进行这种重定向(AWS 说他们不能从 Route53 端做到这一点)。任何帮助将不胜感激
更新:所以我的确切要求是谷歌将把https://us.springverify.com/api-integrations(不带斜线)和https://us.springverify.com/api-integrations/视为不同的网站。它也发生在其他内部页面上。所以我想要的是,即使 URL 被输入或定向到https://us.springverify.com/api-integrations(没有尾部斜杠),URL 也应该重定向到https://us.springverify.com/api-集成/(带有斜杠)。如何使用 Cloudfront 实现这一目标。如果您需要任何其他信息,请告诉我。
解决方案
这是 S3 和 Route53 无法实现的。S3 只是一个数据库,您可以在其中通过键访问对象。例如,在您的静态网站示例中,每个页面都是一个 S3 对象,它有一个对象键,例如S3://my-bucket/pages/my-page
您可以使用 CloudFront 函数或 Lambda@Edge 实现类似的目标。如果您提供有关您想要实现的目标的更多信息,我可能会为您提供进一步的帮助。
更新(在 OP 澄清后):
我不确定这对 SEO 有多大帮助,但您可以使用 CloudFront 函数为 CF 分发收到的每个请求添加一个尾部斜杠。为此,您应该:
- 创建具有事件类型的 CF 函数:查看器请求。请参阅此处的 AWS 文档了解如何执行此操作。
- 添加所需的 URL 重写(例如附加“/”)业务逻辑。请参阅下面的示例如何执行此操作。
function handler(event) {
var request = event.request;
var uri = request.uri;
if (!uri.endsWith('/')) {
request.uri += '/';
}
return request;
}
最好的,斯特凡
推荐阅读
- javascript - Chart.js 压缩条形图上的垂直轴
- set - 集合 {x,x} 是 {x} 的子集吗?
- python - 按 ID 将两个数据框与 pandas 合并
- node.js - 不断显示节点队列上的内容的最佳方式(使用瓶颈)
- ruby-on-rails - 下载包含大量动态生成的 PDF 的 ZIP 文件的最佳方法是什么?
- r - 如何从另一个栅格计算土地覆盖值?
- css - 为 SASS 中的每个规则添加前缀
- flutter - 导航器将所选收音机或文本的值传递到颤动的下一页
- java - 更改权限后“选择文件”按钮不起作用
- c++ - 我可以使用 decltype() 或其他方法通过指针获取真实类型吗?