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

NodeJS 기본 강의

NodeJS Express.js

NodeJS 버퍼&URL;

NodeJS MySql

NodeJS MongoDB

NodeJS 파일(FS)

NodeJS 다른

Node.js URL 리디렉션

Node.js 리디렉션 URL:이 Node.js 강의에서는 리디렉션 URL을 배우겠습니다.

리디렉션은 다음과 같은 경우에 적용될 수 있습니다:

  • 일부 자원이 새 위치로 영구 이동되었으며, 사용자를 이동된 자원의 새 위치로 리디렉션하고 싶습니다.

  • 웹 애플리케이션의 일부 페이지가 제거되었으며, 페이지를 요청할 때 사용자를 홈페이지나 특정 사용자 정의 페이지로 리디렉션하고 싶습니다.

HTTP 리디렉션은 주로 세 가지 유형이 있습니다.

하지만 기억하십시오, HTTP 리디렉션 코드(예를 들어301、302、307와 같은) 원래 또는 리디렉션된 URL의 페이지 순위에 영향을 미치며, 각 리디렉션 코드의 영향은 다릅니다. 예를 들어, 자원을 영구 이동시키면, 응답에서 사용하십시오301 HTTP 코드는 사과를 리디렉션된 URL로 전달하며302또는307그렇지 않습니다.

아래의 예제를 위해, 두 페이지를 고려하십시오: page-a.html과 page-b.html, 웹 애플리케이션이 그들에게 서비스를 제공합니다. 우리는 a.html과 page를 가지고 있습니다404_요청 자원이 존재하지 않을 때 .html을 표시합니다。

Node.js Redirect URL 예제

이 예제에서는 요청의 URL이 리디렉션되어야 하는 경우를 보여줍니다. page에 대한 요청을 받으면-c.html의 요청을 받을 때, 웹 클라이언트로 리디렉션 응답을 보내겠습니다(page를 찾기 위해)-b.html)。

var http = require('http'); 
var fs = require('fs'); 
 
// http 서버를 생성합니다
http.createServer(function (req, res) { 
    
    if (req.url == '/page-c.html') { 
        // 응답에서 사용하십시오301(영구 이동)HTTP 코드로 페이지로 리디렉션-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.substring1),}} 
            function(err, data) {  
                if (err) throw err; 
                res.writeHead(200); 
                res.write(data.toString('utf8); 
                return res.end(); 
        ); 
    }  
 }).listen(8085);

터미널 출력

$ node node-js-http-redirect.js

브라우저를 열고 개발자 도구를 표시한 다음 URL “http:”를 클릭하십시오// localhost:8085/page-c.html”.

‘개발자 도구’의 ‘네트워크’ 부분에서 요청이 새 페이지로 리디렉션되었음을 발견하시면

첫 번째 요청에서는 Node.js 애플리케이션에서301응답 코드를 표시하고 싶지 않습니다.

Node.js 리디렉션 URL 예제 – 파일을 찾을 수 없는 에러

이 예제에서는 요청의 파일을 찾지 못한 경우를 보여줍니다. 하지만, Web 클라이언트에게 재미없는404에러 페이지. 대신, 다른 페이지를 표시하고 싶으시면 예를 들어 page-a.html.

 var http = require('http'); 
var fs = require('fs'); 
 
// http 서버를 생성합니다
http.createServer(function (req, res) { 
    var filePath = req.url.substring(1); 
    fs.readFile(filePath, 
        function(err, data) {  
            // 파일을 읽을 때 오류가 발생하면 page로 리디렉션하십시오-b.html
            if (err){ 
                // 응답할 때 사용302 HTTP 코드가 page로 리디렉션됨-b.html
                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);

터미널 출력

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

브라우저를 열고 개발자 도구를 표시한 다음 URL “http:”를 클릭하십시오// localhost:8085 / page-n.html”.

‘개발자 도구’의 ‘네트워크’ 부분에서 새 페이지로 요청이 이동되었음을 발견하시면, 응답에 포함된302(임시 이동)의 HTTP 코드.