重定向URL

收藏117

阅读7370

更新时间2025-08-28

Node.js重定向URL:在本Node.js教程中,我们将学习重定向URL。

重定向可以应用于以下情况:

  • 一些资源会永久移动到新位置,并且您想将用户重定向到移动资源的新位置。

  • Web应用程序中的某些页面已删除,并且当请求该页面时,您希望将用户重定向到主页或某些自定义页面。

HTTP重定向主要有三种类型。

但是请记住,HTTP重定向代码(比如301、302、307等)会影响原始或重定向url的页面排名,并且每个重定向代码的影响都不同。例如,如果您永久地移动了资源,那么在响应中使用301 HTTP代码将果汁传递到重定向的URL,而302或307则不会。

对于下面的示例,考虑有两个页面:page-a.html和page-b.html,您的web应用程序为它们提供服务。我们有一个404_找到.html当请求的资源不存在时显示。

Node.js Redirect URL 示例

在这个实例中,我们将演示请求的url必须被重定向的场景。当我们收到对page-c.html的请求时,我们将向web客户端发送重定向响应(以查找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代码重定向到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);

Terminal Output

$ node node-js-http-redirect.js

打开浏览器,显示开发人员工具,然后单击URL“ http:// localhost:8085/page-c.html”。

在“开发人员工具”的“网络”部分,您会发现请求已被重定向到新页面。

图片.png

对于第一个请求,我们从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代码。

图片.png

相关

视频

RELATED VIDEOS

更多

免费

Web前端开发极速入门
初级 Web前端开发极速入门

219920次学习

收藏

免费

前端入门_HTML5
初级 前端入门_HTML5

616946次学习

收藏

免费

30分钟学会网站布局
初级 30分钟学会网站布局

238440次学习

收藏

免费

CSS视频教程-玉女心经版
初级 CSS视频教程-玉女心经版

393054次学习

收藏

免费

独孤九贱(1)_HTML5视频教程

免费

独孤九贱(6)_jQuery视频教程

免费

独孤九贱(7)_Bootstrap视频教程

免费

独孤九贱(2)_CSS视频教程
初级 独孤九贱(2)_CSS视频教程

229605次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号