2017-10-20 25 views
0

J'hébergement une seule page application sur heroku et d'utiliser amazon cloudfront, route 53 pour cela. Maintenant, je voudrais rediriger certaines routes internes dans un autre itinéraire sans toucher le code source.Comment rediriger avec Heroku/Amazon cloudfront/route 53

Par exemple

http://example.com/foo -> http://example.com/bar 

Est-il possible avec une CloudFront ou la configuration de la route 53?

Répondre

1

Vous pouvez le faire de plusieurs façons.

Lambda @ Bord:

Vous pouvez créer une fonction de bord lambda pour la demande de spectateur et d'effectuer la redirection.

'use strict'; 
exports.handler = (event, context, callback) => { 
    /* 
    * Generate HTTP redirect response with 302 status code and Location header. 
    */ 
    const response = { 
     status: '302', 
     statusDescription: 'Found', 
     headers: { 
      location: [{ 
       key: 'Location', 
       value: 'http://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html', 
      }], 
     }, 
    }; 
    callback(null, response); 
}; 

Référence: http://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html

API passerelle:

Créer un proxy http et effectuer la redirection vers l'URL souhaitée. Vous devez également créer l'origine et associer le comportement de cloudfront à ce point de terminaison api-gateway.

API Gateway avec Lambda:

transmettre l'URL API-Gateway avec TOUT intégration et qui arrive à Lambda, vous pouvez retourner une réponse pour la même.

'use strict'; 

exports.handler = function(event, context, callback) { 
    var response = { 
     statusCode: 301, 
     headers: { 
      "Location" : "https://example.com" 
     }, 
     body: null 
    }; 
    callback(null, response); 
}; 

Espérons que cela aide.