English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base NodeJS

NodeJS Express.js

NodeJS Buffer&URL;

NodeJS MySql

NodeJS MongoDB

File NodeJS (FS)

Altri NodeJS

Redirezionamento di URL in Node.js

Redirect URL Node.js:In questo tutorial Node.js, impareremo a reindirizzare URL.

I reindirizzamenti possono essere applicati nelle seguenti situazioni:

  • Alcuni risorse vengono spostate permanentemente a una nuova posizione e desideri reindirizzare gli utenti alla nuova posizione della risorsa spostata.

  • Alcune pagine dell'applicazione web sono state eliminate e desideri reindirizzare gli utenti alla homepage o a alcune pagine personalizzate quando richiedono quella pagina.

Ci sono principalmente tre tipi di reindirizzamenti HTTP.

Ma ricorda, i codici di reindirizzamento HTTP (ad esempio 301, 302, 307 ecc.) influenzano il ranking delle pagine originali o reindirizzate, e ogni codice di reindirizzamento ha un impatto diverso. Ad esempio, se muovi permanentemente una risorsa, utilizza il codice HTTP 301 nella risposta per passare il juice all'URL reindirizzato, mentre 302 o 307 non lo faranno.

Per gli esempi seguenti, consideriamo due pagine: page-a.html e page-b.html, il tuo applicazione web fornisce servizi per esse. Abbiamo una pagina 404_找到.html che viene visualizzata quando la risorsa richiesta non esiste.

Esempio di Redirect URL Node.js

In questo esempio, mostreremo la situazione in cui l'URL della richiesta deve essere reindirizzato. Quando riceviamo una richiesta per page-c.html, invieremo una risposta di reindirizzamento al client web (per cercare page-b.html).

var http = require('http'); 
var fs = require('fs'); 
 
// Crea un server HTTP
http.createServer(function(req, res) { 
    
    if (req.url == '/page-c.html') { 
        // 在响应中使用301(永久移动)HTTP代码重定向到page-b.html
        res.writeHead(301, { "Location": "http://" + req.headers['host'] + '/page-b.html' }); 
        return res.end(); 
    } else { 
        // 对于其他URL,请尝试使用页面进行响应
        console.log(req.url) 
        // 读取请求的文件
        fs.readFile(req.url.substring(1), 
            function(err, data) {  
                if (err) throw err; 
                res.writeHead(200); 
                res.write(data.toString('utf8')); 
                return res.end(); 
        }); 
    }  
 }).listen(8085);

Output del terminale

$ node node-js-http-redirect.js

Apri il browser, visualizza gli strumenti sviluppatori e clicca sull'URL "http://localhost:8085/page-c.html".

Nella sezione "Strumenti sviluppatori" di "Rete", troverete che la richiesta è stata reindirizzata a una nuova pagina.

Per la prima richiesta, abbiamo inviato un codice di risposta 301 dal nostro'applicazione Node.js.

Esempio di reindirizzamento URL Node.js – errore file non trovato

In questo esempio, mostriamo il caso in cui non si trova il file richiesto. Tuttavia, non si desidera mostrare al tuo client Web una pagina di errore 404 noiosa. Piuttosto, si desidera visualizzare un'altra pagina, ad esempio page-a.html.

 var http = require('http'); 
var fs = require('fs'); 
 
// Crea un server HTTP
http.createServer(function(req, res) { 
    var filePath = req.url.substring(1); 
    fs.readFile(filePath, 
        function(err, data) {  
            // Se si verifica un errore durante la lettura del file, reindirizza a page-b.html
            if (err) { 
                // Reindirizza con il codice HTTP 302 alla pagina page-b.html durante la risposta
                res.writeHead(302, { "Location": "http://" + req.headers['host'] + '/page-b.html' }); 
                return res.end(); 
            } 
            res.writeHead(200); 
            res.write(data.toString('utf8')); 
            return res.end(); 
    }); 
 }).listen(8085);

Uscita del terminale

 
 $ node node-js-http-redirect-file-not-found.js

Apri il browser, visualizza gli strumenti sviluppatori e clicca sull'URL "http://localhost:8085/page-n.html".

Nella sezione "Strumenti sviluppatori" di "Rete", troverete che la richiesta è stata reindirizzata a una nuova pagina, con un codice HTTP di risposta 302 (movimento temporaneo).