반응형
Nodejs - 리디렉션 URL
사용자가 잘못된 URL을 입력할 때 node.js 서버가 404.html 페이지로 리디렉션하도록 하려면 어떻게 해야 합니까?
검색을 좀 해봤는데 대부분의 결과가 Express에 대한 것으로 보이지만 순수한 node.js로 서버를 작성하고 싶습니다.
잘못된 URL을 결정하는 논리는 응용 프로그램에 따라 다릅니다.RESTful 앱을 실행하는 경우 단순 파일을 찾을 수 없음 오류 또는 다른 오류일 수 있습니다.이를 파악한 후 리디렉션을 전송하는 것은 다음과 같이 간단합니다.
response.writeHead(302, {
'Location': 'your/404/path.html'
//add other headers here...
});
response.end();
Express를 사용하는 경우JS, 다음을 사용할 수 있습니다.
res.redirect('your/404/path.html');
누락된 파일/리소스를 표시하고 404페이지를 제공하려면 리디렉션할 필요가 없습니다.동일한 요청에서 상태 코드를 404로 설정하고 404 HTML 페이지의 내용을 응답 본문으로 사용하여 응답을 생성해야 합니다.다음은 Node.js에서 이를 입증하는 샘플 코드입니다.
var http = require('http'),
fs = require('fs'),
util = require('util'),
url = require('url');
var server = http.createServer(function(req, res) {
if(url.parse(req.url).pathname == '/') {
res.writeHead(200, {'content-type': 'text/html'});
var rs = fs.createReadStream('index.html');
util.pump(rs, res);
} else {
res.writeHead(404, {'content-type': 'text/html'});
var rs = fs.createReadStream('404.html');
util.pump(rs, res);
}
});
server.listen(8080);
404 콘텐츠/본문 포함
res.writeHead(404, {'Content-Type': 'text/plain'}); // <- redirect
res.write("Looked everywhere, but couldn't find that page at all!\n"); // <- content!
res.end(); // that's all!
Https로 리디렉션
res.writeHead(302, {'Location': 'https://example.com' + req.url});
res.end();
당신이 이것을 어디에 사용하는지 생각해 보세요(예: http 요청에 한해서만), 그래서 당신은 끝없는 리디렉션을 받지 않습니다 ;-)
사용해 보십시오.
this.statusCode = 302;
this.setHeader('Location', '/url/to/redirect');
this.end();
기본값이 404인 스위치 문을 사용했습니다.
var fs = require("fs");
var http = require("http");
function send404Response (response){
response.writeHead(404, {"Content-Type": "text/html"});
fs.createReadStream("./path/to/404.html").pipe(response);
}
function onRequest (request, response){
switch (request.url){
case "/page1":
//statements
break;
case "/page2":
//statements
break;
default:
//if no 'match' is found
send404Response(response);
break;
}
}
http.createServer(onRequest).listen(8080);
다음 코드를 사용해야 합니다.
response.writeHead(302 , {
'Location' : '/view/index.html' // This is your url which you want
});
response.end();
다음 코드를 사용하십시오. 이 코드는 네이티브 노드js에서 정상적으로 작동합니다.
http.createServer(function (req, res) {
var q = url.parse(req.url, true);
if (q.pathname === '/') {
//Home page code
} else if (q.pathname === '/redirect-to-google') {
res.writeHead(301, { "Location": "http://google.com/" });
return res.end();
} else if (q.pathname === '/redirect-to-interal-page') {
res.writeHead(301, { "Location": "/path/within/site" });
return res.end();
} else {
//404 page code
}
res.end();
}).listen(8080);
사용하다
res.redirect('/path/404.html');
또는 다음과 같이 정의된 URI로 리디렉션할 수 있습니다.
res.redirect('/');
언급URL : https://stackoverflow.com/questions/4062260/nodejs-redirect-url
반응형
'programing' 카테고리의 다른 글
초점을 잃었을 때 DOM에서 사라지는 html 요소를 어떻게 검사할 수 있습니까? (0) | 2023.08.08 |
---|---|
이 오프셋 구현이 작동하는 이유는 무엇입니까? (0) | 2023.08.08 |
"히카리풀-1 연결 클로저" java.lang.NoClassDefFoundError: org/mariadb/jdbc/message/client/QuitPacket (0) | 2023.07.29 |
키 입력 스크립트를 기준으로 객체 배열을 정렬하는 방법 (0) | 2023.07.29 |
JavaScript Regex를 사용하여 문자열을 추출하는 방법은 무엇입니까? (0) | 2023.07.29 |