通过 PHP 跳转的文件 开启防盗链后无法被使用

2021-07-07 20:40:18 +08:00
 NatsumeMio
有一个网站 https://www.XXXXX.com/index.php/sharingpath/XXXXX.webm 通过这种方法来取的视频文件然后在主站上播放。之后我填入主站域名后开启了 Ngnix 的防盗链,无论在什么地方都是无法拜访,显示我设置的 404 。
然后我测试 https://www.XXXXX.com/XXXXXXXX/XXXXX.webm 如果是实际路径里的文件都能正常的的在主站上拜访,也能达成防盗链的效果。
如果我想让第一个接口在开启防盗链的情况下正常使用,应该做些什么更改?请各位熟悉 Ngnix 和 php 大神能给一个解决思路吗,十分感谢。
1581 次点击
所在节点    NGINX
5 条回复
learningman
2021-07-07 20:44:52 +08:00
这个“开启了”就很精髓
nginx 好像没有一个开关叫做防盗链吧~ 你把他加上的规则搞清楚事情也就解决了
NatsumeMio
2021-07-07 20:57:07 +08:00
说习惯了
location ~ .*\.(jpg|jpeg|gif|png|js|css|webm)$
{
expires 30d;
access_log /dev/null;
valid_referers image.xxxxx.top www.xxxxxxx.com;
if ($invalid_referer){
return 404;
}
}
就是加入这段到了配置文件~
NatsumeMio
2021-07-07 20:57:42 +08:00
@learningman
说习惯了
location ~ .*\.(jpg|jpeg|gif|png|js|css|webm)$
{
expires 30d;
access_log /dev/null;
valid_referers xxxxxx xxxxxxx;
if ($invalid_referer){
return 404;
}
}
就是加入这段到了配置文件~
ashine
2021-07-08 00:08:03 +08:00
HTTP 跳转不管是 301 302 请求头都是不带 Referer 的
如果一定要跳转,建议换一种防盗链的方式,
比如 PHP 先验证 Token 然后 X-SendFIle 给 Nginx 处理
NatsumeMio
2021-07-08 18:56:33 +08:00
@ashine 十分感谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/788163

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX