跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

phpEnv配置Nginx防盗链 phpEnv保护图片资源不被盗用

phpEnv防盗链本质是Apache配置,需启用mod_rewrite、设AllowOverride All,并在.htaccess中用RewriteCond校验Referer,允许空来源及指定域名访问图片等资源。 php Env 默认不带 Nginx,它用的是 Apache —— 所以你根本配不了 Nginx 防盗链。强行找
nginx.conf
或在 phpEnv 里“切换服务器”是白忙活。 确认你用的真是 Nginx? phpEnv 是 Windows 下的 Apache + PHP + MySQL 集成环境,界面里看到的“Nginx”选项通常是误导性标签或第三方插件,实际进程里跑的仍是
httpd.exe
。验证方法很简单: 打开任务管理器 → 查看“后台进程”,找有没有
nginx.exe
;没有,就说明没在跑 Nginx 打开 phpEnv 控制面板 → 点“服务状态”,Apache 显示“运行中”,Nginx 显示“未安装”或“已禁用” 访问
http://127.0.0.1
页面底部,通常会写明 Server: Apache/2.x.x Apache 下正确配防盗链的三步关键操作 既然底层是 Apache,就得按 Apache 的路子来:启用模块、放开权限、写规则。缺一不可,否则
.htaccess
就是废纸。 编辑
Apache/conf/httpd.conf
,取消注释这行:
LoadModule rewrite_module modules/mod_rewrite.so
找到你网站目录对应的
块,把里面的
AllowOverride None
改成
AllowOverride All
在网站根目录(如
D:/phpEnv/www
)新建文件
.htaccess
,用记事本“另存为”,编码选 UTF-8 无 BOM ,文件名必须带英文点
.htaccess
规则里最容易错的几个点 网上抄来的规则常直接报 500 或完全不生效,问题多出在细节上: PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 立即学习 “ PHP免费学习笔记(深入) ”;
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain\.local [NC]
中的
yourdomain\.local
必须和你在 phpEnv 里实际配置的本地域名一致(比如
test.dev
),不能留空或写
localhost
—— 浏览器同源策略会让
http://localhost
和
http://test.dev
被视为不同源 别漏掉
RewriteCond %{HTTP_REFERER} !^$
,否则直接在地址栏输图片 URL 会 403,连本地调试都做不了
RewriteRule \.(jpg|jpeg|png|gif)$ - [F]
的
[F]
是返回 403,不是
[R=403]
(后者语法错误,Apache 启动失败) 规则只对静态文件生效,
.php
文件、
/api/
接口不受影响,别指望它拦住 curl 调用接口盗图 真正难搞的从来不是写几行规则,而是 Apache 配置里那个
AllowOverride
默认关着,又没人告诉你得手动开 —— 这一步跳过,后面全白搭。

相关文章