引言

今天排查跳转的时候,想到整理一下这个跳转重定向的方式。

跳转分两种:

  1. 一种是服务端(server)跳转
  2. 一种是客户端(client)跳转

服务端跳转

服务端通过请求的Http报文当中的Responseheader部分,给客户端响应特定的内容,并且给设置特定状态码
,实现跳转。

服务端的跳转,对搜索引擎来说,十分友好

可以很轻松捕捉到跳转后的最终到达页面。

对用户来说,也是很顺畅能够跳转过去,拥有很好的用户体验

301跳转【永久链接】

比如,服务端进行301跳转,就是给客户端响应301状态码,并且设置报文响应头。

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://example.com/new-page.php");
exit;

很明显,这里不止给了状态码,还给了一个Location,指定要跳转到哪个位置去。

最好在指定跳转后,服务端不再执行其他页面程序了。

302跳转【临时链接】

301跳转一样,302跳转也是发送了一个响应头

php就不需要显式设置状态码了,因为默认就会设置,

<?php
header("Location: http://example.com");
exit(); // 确保脚本停止执行

这样就会跳转了。

客户端跳转

客户端一般就是通过js来控制,给用户浏览器进行跳转了。

一般来说都是使用window.location.href,如下:

window.location.href = 目标链接

就可以实现跳转了,但这种方式对搜索引擎不大好

而且,没有办法在ChormeNetwork菜单当中被抓取到,只能够通过断点,或者地址栏的变化察觉到


欢迎关注拓行公众号,分享各种技术博客文章

拓行——奋勇进取,开拓未来,砥砺前行

最后修改:2025 年 02 月 01 日
如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~