Test de redirection
FR EN ES

Testez vos redirections web et réponses HTTP



La redirection avec Node.js / Express

Node.js est un environnement d'exécution JavaScript côté serveur, souvent utilisé avec le framework Express pour créer des applications web. Les redirections se gèrent directement dans le code, avec la méthode res.redirect().


Redirection 301 (permanente) avec Express

Rediriger une page précise :

app.get('/ancienne-page', (req, res) => {
    res.redirect(301, 'https://www.exemple.net/nouvelle-page');
});

Rediriger toutes les URLs d'un préfixe :

app.get('/ancien-repertoire/*', (req, res) => {
    const newPath = req.path.replace('/ancien-repertoire', '/nouveau-repertoire');
    res.redirect(301, newPath);
});


Redirection 302 (temporaire) avec Express

res.redirect() envoie un code 302 par défaut :

app.get('/page-temporaire', (req, res) => {
    res.redirect('https://www.exemple.net/page-destination');
});


Forcer le HTTPS (middleware)

À placer avant les autres routes, pour forcer toutes les requêtes en HTTPS :

app.use((req, res, next) => {
    if (req.headers['x-forwarded-proto'] !== 'https') {
        return res.redirect(301, 'https://' + req.headers.host + req.url);
    }
    next();
});

Note : x-forwarded-proto est l'entête envoyée par les proxys et load balancers (Nginx, Heroku, AWS…). Sur un serveur direct sans proxy, utilisez req.secure à la place.


Exemple complet

const express = require('express');
const app = express();

// Forcer HTTPS
app.use((req, res, next) => {
    if (req.headers['x-forwarded-proto'] !== 'https') {
        return res.redirect(301, 'https://' + req.headers.host + req.url);
    }
    next();
});

// Redirection 301
app.get('/ancienne-page', (req, res) => {
    res.redirect(301, '/nouvelle-page');
});

app.listen(3000);