2012-03-07 2 views

Répondre

4

Retourner un 301 avec en-têtes d'emplacement appropriés si le nom d'hôte de demande == www.xyz.com

Le navigateur fera le reste.

Vous pouvez le faire de chaque côté du proxy. Mais je suppose qu'il est logique de faire quelque chose comme ceci:

http.createServer(function (req, res) { 
    // 
    // Put your custom server logic here, then proxy 
    // 
    if (req.headers.host == 'www.xyz.com') { 
    res.writeHead(301, {'Location': 'xyz.com/' + req.url}); 
    res.end(); 
    } 
    else { 
    proxy.proxyRequest(req, res, { 
     host: 'localhost', 
     port: 9000 
    }); 
    } 

}).listen(80); 
+0

Le chemin doit également être redirigé. L'en-tête de l'hôte ne peut contenir qu'un nom d'hôte. J'ai édité mon message pour clarifier. – Alexander

+0

un 301 fonctionnera toujours, il suffit de passer l'information de chemin dans l'en-tête de localisation, toutes ces données devraient être disponibles dans l'objet de demande. –

+1

Merci. Je devais écrire "res.writeHead (301, {'Location': 'http://xyz.com/' + req.url}); res.end();" au lieu de "res.send (...)", car send() n'existe pas. – Alexander

Questions connexes