Loading... ## 引言 今天排查跳转的时候,想到整理一下这个跳转重定向的方式。 跳转分两种: 1. 一种是服务端(server)跳转 2. 一种是客户端(client)跳转 ## 服务端跳转 服务端通过请求的`Http`报文当中的`Response`的`header`部分,给客户端响应特定的内容,并且给设置<span style='color:red'>特定状态码</span> ,实现跳转。 服务端的跳转,对搜索引擎来说,十分友好 可以很轻松捕捉到跳转后的最终到达页面。 对用户来说,也是很顺畅能够跳转过去,拥有很好的用户体验 ### 301跳转【永久链接】 比如,服务端进行`301`跳转,就是给客户端响应`301`状态码,并且设置报文响应头。 ```php <?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://example.com/new-page.php"); exit; ``` 很明显,这里不止给了状态码,还给了一个`Location`,指定要跳转到哪个位置去。 最好在指定跳转后,服务端不再执行其他页面程序了。 ### 302跳转【临时链接】 与`301`跳转一样,`302`跳转也是发送了一个响应头 但`php`就不需要显式设置状态码了,因为默认就会设置, ```php <?php header("Location: http://example.com"); exit(); // 确保脚本停止执行 ``` 这样就会跳转了。 ## 客户端跳转 客户端一般就是通过`js`来控制,给用户浏览器进行跳转了。 一般来说都是使用`window.location.href`,如下: ```js window.location.href = 目标链接 ``` 就可以实现跳转了,但这种方式对搜索引擎不大好 而且,没有办法在`Chorme`的`Network`菜单当中被抓取到,只能够通过断点,或者地址栏的变化察觉到 欢迎关注拓行公众号,分享各种技术博客文章拓行——奋勇进取,开拓未来,砥砺前行 最后修改:2025 年 02 月 01 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~