
X-Accel-Redirect可让应用决定授权后,由Nginx内部处理实际文件发送,减少PHP长期传输负担。但它不是自动授权系统,必须保护内部位置、限制目标映射,并确保应用只返回允许的资源。
先区分业务判断与数据传输
WordPress负责核对用户、资源权限和文件映射,Nginx负责按内部指示发送内容。不能把客户端下载文件的URL直接拼成任意磁盘路径,也不能只要登录就允许访问所有附件。每个业务文件应有可信记录与实际存储位置对应。
保护内部位置不被直接请求
配置适用的internal位置及正确root或alias映射,确认外部用户不能绕过应用直接请求该内部URL。映射规则和尾斜杠等细节需按实际配置验证。内部处理路径不是普通公共目录,不应因为它难猜就省去访问限制。

限制应用返回的目标与响应
应用只能基于可信业务记录生成内部目标,不能原样信任请求参数中的路径。还需安排正确文件类型、下载名和缓存策略,避免私人内容被边缘公共缓存。错误、文件丢失或权限变化时应有明确状态,不将所有情况返回同一文件或首页。
验证合法与绕过路径
受控测试中,无权用户和直接内部地址访问应被拒绝,合法用户可以下载完整文件。检查大文件、Range及撤销权限后的行为,观察PHP进程与日志范围但不泄露私有路径。完成后记录应用与服务器配置的双重依赖,迁站时不能只复制一边。
关键区别

应用检查:决定用户是否可取文件;不能由请求路径直接决定。
内部位置:供Nginx内部发送;必须阻止外部直达。
文件发送:减少PHP传输负担;仍需正确缓存与状态。
怎样确认处理到位
授权用户获得完整正确文件,内部路径与无权请求不能绕过,私人资源不被公共缓存,应用和服务器映射均有可追溯配置。
容易误判的边界
X-Accel-Redirect只分担传输,不代替WordPress权限、路径校验或签名链接管理;必须按实际部署验证所有入口。
