You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS S3配置x-amz-website-redirect-location重定向不生效问题

问题描述

操作流程:

  • 在AWS S3中创建存储桶,开启静态网站托管功能
  • 上传两个HTML文件到存储桶:
    • page1.html 文件内容:
      This is page1
      
    • page2.html 文件内容:
      This is page2
      
  • 在S3管理控制台为page1.html对象添加元数据:x-amz-website-redirect-location = /page2.html

故障现象:
通过Chrome浏览器访问S3静态网站地址时,访问page1未触发重定向,页面仍显示page1原有内容,没有跳转到page2。已对照官方操作指引检索排查相关方案,仍未定位问题。

附件:

curl -v访问对象地址的响应结果:

$ curl -v  https://aws-redirect-test.s3.ap-northeast-1.amazonaws.com/page1.html
*   Trying 3.5.154.185...
* TCP_NODELAY set
* Connected to aws-redirect-test.s3.ap-northeast-1.amazonaws.com (3.5.154.185) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: CN=*.s3-ap-northeast-1.amazonaws.com
*  start date: Dec  9 00:00:00 2021 GMT
*  expire date: Dec  2 23:59:59 2022 GMT
*  subjectAltName: host "aws-redirect-test.s3.ap-northeast-1.amazonaws.com" matched cert's "*.s3.ap-northeast-1.amazonaws.com"
*  issuer: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon
*  SSL certificate verify ok.
> GET /page1.html HTTP/1.1
> Host: aws-redirect-test.s3.ap-northeast-1.amazonaws.com
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 200 OK
< x-amz-id-2: jWBm/e0Rdb2BB3R/nFffH8/YS2+f1AgXFHQfT6bUzmMK9tMZDtSNYprUp4Ka6m9xMKookshlWwo=
< x-amz-request-id: T4JG7K11X2FTBCA8
< Date: Thu, 09 Jun 2022 02:15:03 GMT
< Last-Modified: Thu, 09 Jun 2022 02:12:42 GMT
< ETag: "a12ac1ca5226842e56871deaa4d9ef9c"
< x-amz-website-redirect-location: /page2.html
< Accept-Ranges: bytes
< Content-Type: text/html
< Server: AmazonS3
< Content-Length: 14
<
This is page1
* Connection #0 to host aws-redirect-test.s3.ap-northeast-1.amazonaws.com left intact
* Closing connection 0
问题根因

访问端点用错了,当前使用的是S3 REST API对象端点,不是静态网站托管专属端点,重定向逻辑不会触发。
从curl结果可以直接看到,请求的地址是https://aws-redirect-test.s3.ap-northeast-1.amazonaws.com/page1.html,这个是S3原生的对象访问接口,只会原样返回对象内容和配置的自定义元数据,不会处理x-amz-website-redirect-location对应的重定向规则——这个重定向逻辑只有访问S3静态网站专属端点时才会生效。
S3静态网站端点的域名格式和REST端点有明显区别,以ap-northeast-1区域为例,格式为http://<桶名>.s3-website-ap-northeast-1.amazonaws.com,域名标识段是s3-website,而非REST端点的s3。

修复操作
  • 打开S3控制台,进入对应存储桶的「属性」页面,拉到最底部的「静态网站托管」板块,复制面板中官方给出的静态网站端点地址,不要使用对象详情页提供的原生对象访问URL。
  • 用复制的静态网站端点拼接/page1.html路径访问,此时S3会识别对象上的重定向元数据,返回301 Moved Permanently状态码,携带Location: /page2.html响应头,自动完成跳转。
  • 静态网站端点默认仅支持HTTP协议,如果需要HTTPS访问,需要在端点前挂载CloudFront分配,配置SSL证书后转发请求到静态网站源站,直接访问静态网站端点的HTTPS地址无法连通。

内容的提问来源于stack exchange,提问作者skrbug

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 04:03:36