本人在开发一个网盘资源整合网站时,在项目部署上线时测试,从我的网站上点开一个百度网盘链接进入之后显示访问的页面不存在,但是把链接复制到新的标签页后进入后显示正常,资源还是存在的。所以对于普通使用者遇到这种情况,可以把链接复制到新的标签页来访问试一下。
原因
百度网盘在访问的时候,点击链接后生效的页面并不是初始时输入的链接,而是会重定向到一个新页面,如果存在验证码,这个新页面是init页面,如果不存在验证码,会重定向到资源目录。但问题就是出在重定向这个过程,在点击百度网盘链接后,正常的 a 标签会携带 refer 字段,表示自己是从哪个网站来的,我怀疑如果这个网站是不受信的域名时,百度网盘会停止重定向,从而导致显示资源不存在。
解决方法
- 对于普通用户来说,可以把链接复制到新的标签页,来重新访问试一下。
- 对于开发者,可以尝试一下把 a 标签链接 HTTP 的 refer 选项禁用,具体实现方式有多种,可以搜一下gpt,我用的是在页面上放一个
<meta name="referrer" content="no-referrer">
,如果是纯html页面,可以把它放在head
标签里,如果是vue组件,可以直接放在<template>
的开头位置,这会造成本页面所有链接都禁止携带 refer 信息,这样百度网盘检测不到 refer 信息,就不会禁止重定向到资源地址了。