English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Node.js リダイレクト URL:このNode.jsチュートリアルでは、リダイレクトURLを学びます。
リダイレクトは以下の状況に適用できます:
一部のリソースが新しい位置に永続的に移行され、ユーザーを移行されたリソースの新しい位置にリダイレクトしたい場合があります。
ウェブアプリケーションの一部のページが削除されており、そのページにリクエストがあった場合、ユーザーをホームページやカスタムページにリダイレクトしたい場合があります。
HTTPリダイレクトは主に3種類あります。
ただし、HTTPリダイレクトコード(例えば301、302、307などがオリジナルまたはリダイレクトURLのページランクに影響を与え、各リダイレクトコードの影響は異なります。例えば、リソースを永続的に移行した場合、応答で使用します301 HTTPコードがリダイレクトのURLに果汁を渡し、302または307ならない。
以下の例では、2つのページ:page-a.htmlとpage-b.html、ウェブアプリケーションがそれらにサービスを提供します。私たちは、404_当該.htmlがリソースが存在しない場合に表示されます。
この例では、リクエストのURLがリダイレクトされる必要があるシーンを示します。pageに対してリクエストを受け取るとき、-c.htmlのリクエスト時、ウェブクライアントにリダイレクト応答を送信します(pageの検索に移行します)。-b.html)。
var http = require('http'); var fs = require('fs'); // HTTPサーバーを作成します 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.substring(1),}} function(err, data) { if (err) throw err; res.writeHead(2 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応答コードを使用します。
この例では、リクエストのファイルが見つからない場合を示します。ただし、あなたはWebクライアントに退屈な404エラーページ。代わりに、他のページ、例えばpage-a.html。
var http = require('http'); var fs = require('fs'); // HTTPサーバーを作成します 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(2 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コード。