B 站面试官:“啥是重定向?”

三分钟,带你学习和实践域名重定向

大家好,我是鱼皮,今天分享 重定向 小知识,以及我在腾讯云云开发中实现域名重定向的实践。

孽起

之前,我开发了一个编程导航网站,将网站放到了腾讯云云开发上,用云托管(容器)的方式部署和维护。还购买了一个域名 code-nav.cn,并且在云开发后台 访问服务 中,将该域名的子域名 www.code-nav.cn 和存放网站文件的容器相关联,配置如图:

云开发网站访问配置

然后,大家就能通过网址 www.code-nav.cn 访问该网站了。

访问网站

但是,很快,我就发现了一个严重的问题。

有不少同学想要访问我的网站,但是,由于他们输入的网址是 code-nav.cn,省略了网址前缀 www,导致网站无法访问。也让我流失了一批用户。

###初战 —— 域名配置

要解决这个问题,其实很简单,之前是配置 www 子域名指向容器,那在云开发后台再加一条配置,直接将购买的域名(父域名)code-nav.cn 也指向容器,不就成了么?

配置如下:

云开发网站访问配置

这样,无论用户是否输入 www 前缀,都能够访问到我们的网站啦!

访问网站

看似非常完美,但目前,网站其实还存在一定问题

现存问题

首先,带 www 与不带 www 其实是两个不同的网址,虽然对用户来说,感觉是访问了同一个网站。但对于搜索引擎,小蜘蛛们会把他们识别为两个不同的网站,并且分别收录这两个路径下网站的内容,导致权重分散。虽然对流量小的网站来说影响不大,但对于大站点,这是必须要处理的问题。

此外,访问 code-nav.cn(不带 www)的用户反映,网站上的数据无法加载。这是因为,腾讯云云开发的 WEB 安全域名限制,只有在白名单内的域名才允许访问云资源(数据、文件等),因此,还要在 安全配置 中,补上 code-nav.cn 域名。

云开发安全配置

虽然现在访问正常了,但是如果业务中还有一些和 www 网址强相关的逻辑,比如判断用户访问的网址必须是 www.code-nav.cn 才允许登录,那么你还要去修改代码,考虑稍有不周,就会导致一些功能出现问题。

为解决这些问题,我们可以使用 重定向 技术。

重定向

重定向是一个很广泛的概念,即通过各种方法将各种网络请求重新定个方向转到其它位置,比如网页重定向、域名重定向、数据报文重定向等。

在网站开发中,重定向的应用场景太多了,比如用户未登录时,将它输入的网址自动跳转为登录页;用户访问旧版网址时,自动跳转到新版网页。重定向不仅是导游,也是一名霸道的保安。

因此,很多大站点都会采用重定向技术。比如访问百度 baidu.com,按 F12 查看开发者控制台,可以看到网址通过 302 重定向,自动跳转为了 www.baidu.com

重定向

那问题就来了,啥是 302 重定向?

不妨看一看常见的重定向 HTTP 状态码。

重定向 HTTP 状态码

和重定向有关的 HTTP 状态码主要是 301、302、303、307、308,最常用的是 301 和 302,可以看看 MDN 官方对它们的解释。

301 是永久重定向(Moved Permanently)说明请求的资源已经被 永久 移动到了由 Location 头部指定的 url 上,是固定的不会再改变,搜索引擎会根据该响应修正。

而 302 是暂时性转移(Moved Temporarily,或者 Found),表明请求的资源被 暂时 移动到了由 Location 头部指定的 URL 上。浏览器会重定向到这个 URL, 但是搜索引擎不会对该资源的链接进行更新。

虽然 301 和 302 都能够将用户输入的网址 A, 改为重定向后的网址 B,但他们还是有区别的:

  • 搜索引擎区别:301 表示原地址 A 的资源已被移除,永远无法访问,搜索引擎抓内容时会将网址 A 全部替换为 B;而 302 表示网址 A 还活着,搜索引擎会在抓取网址 B 新内容的同时,保留网址 A 的记录。

  • 安全性:302 跳转有网站劫持的风险,导致网站被盗用。

再战 —— 云开发重定向实践

了解重定向之后,来试试怎么实现重定向,以及如何在云开发中实现域名重定向。

实现重定向的方式有很多,很大程度上依赖于你使用的 web 服务器,比如 Nginx、Apache、Tomcat 等,一般在服务器中添加几条配置即可。

我的编程导航网站是以容器的方式,部署在云开发提供的云托管功能上的。我把开发好的网站文件和提供 web 服务的 Nginx 服务器一起打包,做成了容器,于是,可以将每个容器当成一个小服务器,独立运行。

要支持重定向,只需要修改下 Nginx 的配置。比如这里我选择给整个网站添加 301 永久重定向,配置文件如下:

server {listen 80;# gzip configgzip on;...root /usr/share/nginx/html;include /etc/nginx/mime.types;# 添加重定向if ($http_host ~ "^code-nav.cn") {rewrite  ^(.*)    https://www.code-nav.cn permanent;}
}

不必手写和记忆 Nginx 配置,直接使用可视化界面生成即可:

Nginx 可视化配置

详情参见这篇文章:轻松搞定 Nginx 配置代码的神器!

其他的服务器配置也可以自行查阅文档,这里不再赘述。

然后,在云托管上创建新版本,发布新的容器,就大功告成啦!

新建版本

查看下效果,访问 code-nav.cn,网站重定向到了 www.code-nav.cn,完美!

查看网络请求

总结

最后,回顾下在腾讯云云开发中实现域名重定向的完整过程,包括如下步骤:

  1. 访问服务 中添加父域名到网站的指向(云托管等)

  2. 安全配置 中添加父域名到白名单中

  3. 在 web 服务器中添加重定向配置

  4. 新建版本,部署发布

整个流程还是非常简单的~

如果本文对大家有帮助,请一定要给个 点赞 + 在看 支持呀!❤️

往期推荐

完了,最近被她们迷住了!

气炸!又一次被编辑器坑了!

我工作中不可或缺的宝贝们!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

比起掉头发,我更怕掉队

程序员是最需要持续学习的职业可能在大家眼中,程序员是一群木讷、思维方式单一的物种,但其实,他们才是思维活跃,时刻保持学习力,不甘落后的一群人。计算机行业每天都会有新的东西出现,程序员们需要关注最新…

刷新mac地址命令_配置好Cisco交换机需要熟悉IOS命令及相关的知识

一、几种配置命令模式switch> 这种提示符表示是在用户命令模式,只能使用一些查看命令。switch# 这种提示符表示是在特权命令模式。switch(config)# 这种提示符表示是全局配置模式switch(config-if)# 端口配置命令模式二、检查、查看命令这些命令是查看当前配置…

WPF 使用FontAwesome字体图标

要搞点小软件,又不想使用图标和图标类库,突然想起FontAwesome,试了一下,还挺方便的,先弄了几个最常用的图标试一下,弄了几个按钮的样式,看一下效果:看一下fontAwesome使用方法:首先从…

从Google Maglev说起,如何造一个牛逼的负载均衡?

Maglev是谷歌为自己的数据中心研发的解决方案,并于2008开始用于生产环境。在第十三届网络系统设计与实现USENIX研讨会(NSDI ‘16)上, 来自谷歌、加州大学洛杉矶分校、SpaceX公司的工程师们分享了这一商用服务器负载均衡器Maglev的…

怎么打包图片_超简单的免费批量图片压缩技巧,只需3步

我们在上传图片的时候,经常会遇到一个问题,那就是图片文件太大,无法上传。那这个时候我们该怎么办呢?我们一般都会想到把图片进行压缩之后,重新上传。那么我们要怎么压缩图片呢?如果图片数量很多&#xff0…

Calendar类

接触java不久,感觉java真的挺好玩的。 Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法…

史上最牛的5次黑客攻击!比电影还刺激!

好莱坞认为,黑客就像是使用计算机的黑魔导士。在电影中,计算机可以炸毁房屋,关闭公路,释放瘟疫还有引发女权运动。也许有人认为,好莱坞的想象力很丰满,但现实是骨感的。他们错了,因为在现实中&a…

优化 .NET Core logging 中的泛型 logger

优化 .NET Core logging 中的泛型 loggerIntro在微软的 logging 组件中&#xff0c;我们可以比较方便的使用泛型 Logger&#xff0c;如&#xff1a;ILogger<Generic> 这样的&#xff0c;但是如果泛型 Logger 的类型是一个泛型类型就会有些问题&#xff0c;具体的泛型参数…

charts漏斗图表_ECharts漏斗图属性与实例介绍

ECharts漏斗图在 ECharts 系列中&#xff0c;漏斗图使用 series[i]-funnel 表示。漏斗图适用于业务流程比较规范、周期长、环节多的流程分析&#xff0c;通过漏斗各环节业务数据的比较&#xff0c;能够直观地发现和说明问题所在。示例&#xff1a;ECharts漏斗图属性type在漏斗图…

原来R语言还有这些不为人知的用处!

开学钜惠已经进行了好些天啦&#xff0c;前两天小天介绍了关于python课程的开学季限时优惠&#xff08;传送门&#xff09;&#xff0c;你以为这样就结束了吗&#xff1f;不不不&#xff0c;还有R语言系列的优惠没讲过呢。接下来&#xff0c;小天来详细说明一下&#xff01;19月…

记一次 .NET医院公众号程序 线程CPU双高分析

一&#xff1a;背景 1. 讲故事上周四有位朋友加wx咨询他的程序出现 CPU 线程 双高的情况&#xff0c;希望我能帮忙排查下&#xff0c;如下图&#xff1a;从截图看只是线程爆高&#xff0c;没看到 cpu 爆高哈????????????&#xff0c;有意思的是这位朋友说他&#…

谷歌搜索,揭示人性最黑暗的5个秘密

《卫报》网站发布文章指出&#xff0c;我们能够从我们在网上问的问题获得对自己更多的了解呢。美国数据科学家塞斯斯蒂芬斯-大卫多维茨&#xff08;Seth Stephens-Davidowitz&#xff09;通过分析谷歌的匿名搜索数据&#xff0c;揭示了我们最黑暗的一些秘密&#xff0c;揭露了我…

通过Dapr实现一个简单的基于.net的微服务电商系统(七)——一步一步教你如何撸Dapr之服务限流...

在一般的互联网应用中限流是一个比较常见的场景&#xff0c;也有很多常见的方式可以实现对应用的限流比如通过令牌桶通过滑动窗口等等方式都可以实现&#xff0c;也可以在整个请求流程中进行限流比如客户端限流就是在客户端通过随机数直接返回成功失败来决定是否发起请求。也可…

(转)完美画质 3D游戏反锯齿技术浅析 .

完美的画面已经离我们不再遥远——反锯齿技术浅析 不管现今的游戏画面有多完美&#xff0c;人物和环境有多真实&#xff0c;但游戏画面的构成的主要方式仍然没有得到改善&#xff1a;一帧画面由成千上万像素构成。这意味着物体多边形的轮廓最终是锯齿状的图形。所以画面质量不可…

业余时间学数据分析,如何快速上手

广泛被应用的数据分析谷歌的数据分析可以预测一个地区即将爆发的流感&#xff0c;从而进行针对性的预防&#xff1b;淘宝可以根据你浏览和消费的数据进行分析&#xff0c;为你精准推荐商品&#xff1b;口碑极好的网易云音乐&#xff0c;通过其相似性算法&#xff0c;为不同的人…

64位Visual Studio 2022,微软在下一盘大棋!

有没有跟我一样奇怪过&#xff0c;都2021年了&#xff0c;用的还是VS2019&#xff1f;原来微软是憋大招去了&#xff0c;4月18号Amanda的一篇博文宣布了一则重磅消息——Visual Studio 2022 首个预览版将于今年夏季发布 &#xff0c;并且终于成为万众期待的 64 位版&#xff01…

【重磅】MIT发布2018年“全球十大突破性技术”

“有些技术已经应用多年&#xff0c;有些则是意外之喜。无论如何&#xff0c;以下是我们认为将在未来的几年对我们的工作和生活产生巨大影响的技术突破。”北京时间2018年2月21日&#xff0c;《麻省理工科技评论》揭晓了2018年“全球十大突破性技术”&#xff0c;这份全球新兴科…

[Stardust]星尘配置中心

在分布式系统开发中&#xff0c;配置中心必不可少。在中通几年时间里&#xff0c;为了配合大数据计算平台&#xff0c;统一管理数百个微小应用&#xff0c;设计了一套轻量级配置中心。星尘配置中心在其理念基础上改进&#xff0c;针对中小团队而全新设计&#xff01;源码&#…

大数据可视化设计到底是啥,该怎么用

大数据可视化是个热门话题&#xff0c;在信息安全领域&#xff0c;也由于很多企业希望将大数据转化为信息可视化呈现的各种形式&#xff0c;以便获得更深的洞察力、更好的决策力以及更强的自动化处理能力&#xff0c;数据可视化已经成为网络安全技术的一个重要趋势。文章目录一…

WPF 如何实现颜色值拾取

WPF开发者QQ群&#xff1a; 340500857 前言如何进行颜色值拾取&#xff1f;这里采用的是调用WindowsAPI进行实现。吸取 沙漠尽头的狼 的建议多写一些文字进行描述。效果图如下&#xff1a;第一步 注册WindowsAPI 代码如下&#xff1a;[DllImport("user32.dll")]stati…