首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >301 跳转被浏览器缓存,怎么办?

301 跳转被浏览器缓存,怎么办?

作者头像
Denis
发布2023-04-13 11:58:23
发布2023-04-13 11:58:23
1.6K0
举报
文章被收录于专栏:WordPress果酱WordPress果酱

先百科一下什么是 301 跳转?

301跳转是指页面永久性移走,通常叫做301跳转,也叫301永久重定向,301跳转多用于旧网址在废弃前转向新网址以保证用户的访问,在诸多服务器中,均支持本跳转方法。

如何实现 301 跳转

简单的 PHP 跳转代码:

代码语言:javascript
复制
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://要跳转的链接/");
exit;

如果是 WordPress 的话,则更简单:

代码语言:javascript
复制
wp_redirect($location, 301);

301 跳转会被浏览器缓存

我们会在一些程序中使用跳转来做一些数据的跟踪统计,但是我在使用当中发现,301 跳转会被浏览器缓存,就是中间的跟踪统计的程序处理过程不会被执行,浏览器直接跳转到目标链接。怎么办呢?

1. 给 301 跳转添加缓存通知头

代码语言:javascript
复制
header("Cache-Control: no-store, no-cache, must-revalidate");
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://要跳转的链接/");
exit;

2. 使用 302 跳转

302 跳转是要求客户端执行临时重定向(原始描述短语为“Moved Temporarily”),由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。

并且只有在指定了 Cache-Control 或 Expires 的情况下,这个响应才是可缓存的。所以 302 跳转只要不指定 Cache-Control 或 Expires,就是不缓存的:

代码语言:javascript
复制
header("HTTP/1.1 302 Found");
header("Location: https://要跳转的链接/");
exit;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何实现 301 跳转
  • 301 跳转会被浏览器缓存
    • 1. 给 301 跳转添加缓存通知头
    • 2. 使用 302 跳转
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档