在宝塔面板中添加 referer 限制需将 valid_referers 和 if 判断写入匹配静态资源的 location 块内(如 location ~ .*.(jpg|png|js|css)$),保存后必须点击「重载配置」,并确保规则覆盖实际请求路径。
宝塔面板里直接改 Nginx 配置加
限制,是可行的,但必须注意两点:一是规则要写在正确的位置(不能只丢在 server 块开头),二是宝塔会自动重写配置,手动改完不勾选「禁用配置修改提示」+ 不重启服务,大概率白干。
在哪写 referer 限制规则才生效
Nginx 的
和
判断必须放在
块内,且该 location 要覆盖到被保护的资源路径(比如图片、视频、JS/CSS)。如果写在
根块下,Nginx 会报错或静默忽略。
推荐位置:
,找到类似
的区块
不要写在
这类被宝塔托管的顶层文件顶部
如果站点用了伪静态(如 ThinkPHP/Laravel),确保 referer 规则在
或更具体的静态资源匹配块里,而不是只在
里
正确的 referer 限制写法(含常见坑)
直接抄下面这段进对应
块即可,但要注意域名末尾斜杠、协议、大小写——
默认不带协议和路径,只比对域名部分。
eclipse maven plugin插件安装和配置 中文WORD版
本文档主要讲述的是eclipse maven plugin插件安装和配置;感兴趣的朋友可以过来看看
下载
允许空 referer(比如直接在浏览器地址栏输入图片 URL);
允许被防火墙或隐私插件 stripped 的 referer(值为非标准字符串)
写
就能匹配 www 和子域名,但
必须单独列出来,通配符不匹配主域名本身
别写
——
不解析协议和路径,这么写等于完全失效
如果站点启用了 HTTPS,但用户用 HTTP 访问并引用资源,referer 值仍是
,而你的规则里只写了
,就会误杀
改完配置后必须做的三件事
宝塔不会自动应用你手写的 Nginx 片段,漏掉任一环节都会导致规则不生效。
保存
配置文件
后,点右上角「重载配置」按钮(不是「保存」,也不是「重启 Nginx」)
进
,确认「强制 HTTPS」开关状态——如果开了,而 referer 规则里没包含 HTTP 版本域名,就可能拦截自家页面
临时用
测试返回是否为
;再用
确认正常请求不被拦
最常被忽略的是 location 匹配范围和重载动作——很多人改了配置却没重载,或者把规则塞进了只处理 PHP 的 location 里,结果图片请求根本没走到那条规则。referer 是 HTTP 头,它不区分后端语言,只看请求路径匹配哪个 location。
referervalid_referersiflocationserver网站 > 设置 > 配置文件location ~ .*\.(jpg|jpeg|png|gif|js|css)$include /www/server/panel/vhost/xxx.conflocation /location ~ \.php$locationvalid_referersvalid_referers none blocked server_names *.yourdomain.com yourdomain.com;
if ($invalid_referer) {
return 403;
}noneblocked*.yourdomain.comyourdomain.comhttps://yourdomain.comvalid_referershttp://...https://...网站 > 设置 > SSLcurl -H "Referer: http://evil.com" https://yourdomain.com/test.jpg403-H "Referer: https://yourdomain.com"