当前位置: 首页 > 知识库问答 >
问题:

S3重定向请求

司徒寒
2023-03-14

我正在尝试使用重定向规则设置静态web托管。在我的应用程序中,任何具有前缀api/(http://web.company.com/api)的请求都应该重定向到具有相同前缀(http://api.company.com/api)的另一个主机。我已按以下方式设置路由规则:

<RoutingRules>
  <RoutingRule>
    <Condition>
      <KeyPrefixEquals>api/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <HostName>api.company.com</HostName>
    </Redirect>
  </RoutingRule>
</RoutingRules> 

但请求没有被正确重定向。控制台中有两个不同的错误:

XMLHttpRequest无法加载http://api.company.com/api/logout。请求的资源上没有“access-control-allow-origin”标头。因此,不允许访问来源“http://bucket.s3-website-us-west-2.amazonaws.com”。

Angular.js:10661 POST http://bucket.s3-website-us-west-2.amazonaws.com/api/oauth/token?grant_type=client_credentials 405(不允许使用方法

因为其中一个问题是CORS问题,这里是我的CORS配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>http://*</AllowedOrigin>
        <AllowedOrigin>https://*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

看起来对/api/something的请求被重定向(但被浏览器拒绝),而/api/something/else没有被重定向。我做错什么了?

共有1个答案

滑文昌
2023-03-14

我遇到了类似的问题。我建立了两个静态网站。一个是根域。第二个是子域。我们需要从根到子域的重定向。我们使用了如下语法:

<RoutingRules>
  <RoutingRule>
    <Condition>
      <KeyPrefixEquals>api/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <HostName>api.company.com</HostName>
      <Protocol>https</Protocol>
      <ReplaceKeyWith>index.html</ReplaceKeyWith>
    </Redirect>
  </RoutingRule>
</RoutingRules> 

文档,虽然不是很清楚,但可以在这里找到:http://docs.aws.amazon.com/amazons3/latest/dev/howdoiwebsiteconfiguration.html#configure-bucket-as-website-routing-rule-syntax

 类似资料:
  • 我正在按照这个教程使用s3和lambda实现即时生成缩略图。我被困在将不存在的请求重定向到lambda上 我的s3存储桶是私有的,我使用带有Cognito idToken的预签名url来访问其内容,它可以工作。 现在,如果我向尚未生成的缩略图(s3中不存在)发出请求,我希望s3将请求重定向到lambda。我不知道如何做这件事。 以下是s3路由角色 > < li> 当我使用预先签名的url访问不存在

  • 例如,我试图向www.testjson发出GET请求。com/json,但响应是从不同的域URL检索的,例如www.testjson。com/confirmJson。 Spring mvc是否支持此功能,特别是restTemplate.exchange功能。 我目前正在做这类事情,但我得到一个500状态码(内部服务器错误),无法找出到底是什么导致了错误。 那么RestTemplate真的可以管理重

  • 在Android WebView中有没有拦截重定向请求的方法?似乎不应该调用InterceptRequest(WebView,WebResourceRequest)! 我希望通过以下方式自动捕获所有web视图请求中的令牌过期: 从服务器发出重定向而不是401 使用shouldOverrideUrlLoading()在需要登录的情况下调用AppAuth 使用shouldInterceptReques

  • 主要内容:请求转发,重定向,2. 通过 ModelAndView 实现重定向Spring MVC 是对 Servlet 的进一步封装,其本质就是一个 Servlet,因此在 Spring MVC 中也存在转发和重定向的概念。 在 Spring MVC 中,我们可以在逻辑视图名中通过“forward:”和“redirect:”两个关键字来表示转发和重定向。 请求转发 我们可以在控制器方法指定逻辑视图名(View Name)时,使用“forward:”关键字进行请求转发操作。

  • 我将spring saml扩展与Apache2.2+Tomcat7.0+OKTA(IdP)一起使用。securitycontext.xml如下所示: MetadataGeneratorFilter: 谢谢 奈良 HTTP请求转储:

  • 我正在开发一个API网关,将请求重定向到一些微服务。这是application.properties文件的一部分: 我正在尝试重定向来自API网关的请求(http://localhost:8080/PetApp/auth/login)到正在运行的服务(http://localhost:8086/PetApp_Auth/auth/generateToken)我已经和邮递员一起将请求直接发送到微服务,