2016-06-03 7 views
0

Ich versuche statische Webhosting mit Redirect-Regeln einzurichten. In meiner Anwendung sollten alle Anfragen mit dem Präfix api/(http://web.company.com/api) an einen anderen Host mit demselben Präfix (http://api.company.com/api) umgeleitet werden. Ich habe meine Routing-Regeln wie folgt eingerichtet:S3 Redirect Anfragen

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

Aber die Anforderungen werden nicht ordnungsgemäß umgeleitet. In der Konsole gibt es zwei verschiedene Fehler:

XMLHttpRequest kann http://api.company.com/api/logout nicht geladen werden. Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. Ursprung 'http://bucket.s3-website-us-west-2.amazonaws.com' ist daher nicht erlaubt.

Angularjs: 10661 POST http://bucket.s3-website-us-west-2.amazonaws.com/api/oauth/token?grant_type=client_credentials 405 (Methode nicht erlaubt)

Da eines der Themen hier ein CORS Problem ist, ist meine CORS-Konfiguration:

<?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> 

Es ist wie die Anforderungen sieht/api/etwas wird umgeleitet (aber vom Browser abgelehnt), während/api/something/else nicht umgeleitet wird. Was mache ich falsch?

+0

Oder werden nicht umgeleitet? –

+0

@ Michael-sqlbot Ich habe meine Frage aktualisiert, um klarer zu sein und einige zusätzliche Informationen zu enthalten. – cscan

+0

Warum versuchen Sie Redirects zu erstellen, anstatt nur Ihre Seiten zu codieren, um auf die richtigen URLs zuzugreifen? –

Antwort

0

Ich stieß auf ein ähnliches Problem. Ich habe zwei statische Websites eingerichtet. Einer ist die Stammdomäne. Die zweite ist eine Subdomain. Wir brauchten eine Umleitung von der Wurzel zur Subdomain. Wir haben es mit Syntax wie folgt funktionieren:

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

Dokumentation, wenn auch nicht wirklich klar, fand hier ist: „Sind nicht empfangen“ http://docs.aws.amazon.com/AmazonS3/latest/dev/HowDoIWebsiteConfiguration.html#configure-bucket-as-website-routing-rule-syntax