반응형
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();
다음을 사용할 수 있습니다.
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!
HTTP를 리디렉션 의
res.writeHead(302, {'Location': 'https://example.com' + req.url});
res.end();
이것을 사용하는 곳 을 고려 하십시오 (예 : http 요청에만 해당), 그래서 당신은 끝없는 리디렉션을 얻지 않습니다 ;-)
기본값은 404 인 switch 문을 사용했습니다.
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);
이 시도:
this.statusCode = 302;
this.setHeader('Location', '/url/to/redirect');
this.end();
다음 코드를 사용해야합니다.
response.writeHead(302 , {
'Location' : '/view/index.html' // This is your url which you want
});
response.end();
참고 URL : https://stackoverflow.com/questions/4062260/nodejs-redirect-url
반응형
'programing' 카테고리의 다른 글
Image.Save (..)에서 메모리 스트림이 닫히기 때문에 GDI + 예외가 발생합니다. (0) | 2020.08.14 |
---|---|
한 번에 일반 목록 내의 모든 null 요소를 제거하는 방법은 무엇입니까? (0) | 2020.08.14 |
" 'Microsoft.ACE.OLEDB.12.0'공급자가 로컬 컴퓨터에 등록되지 않았습니다."xlsx 프로세스를 SQL 서버로 가져 오는 동안 오류 발생 (0) | 2020.08.14 |
Java switch 문 여러 경우 (0) | 2020.08.14 |
ActiveRecord : 콘솔에서 테이블의 열 나열 (0) | 2020.08.14 |