You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OpenLiteSpeed服务器的WordPress中通过PHP脚本重定向PDF GET请求

问题原因

OpenLiteSpeed 默认对 pdf 等静态资源有优先级更高的直接返回逻辑,会跳过 .htaccess 重写规则执行,这是你本地 Apache 配置正常、线上规则不生效的核心原因。

分步解决方法

  1. 开启站点 .htaccess 读取权限
    登录 OpenLiteSpeed WebAdmin 控制台(默认端口 7080),进入对应站点的配置页,切换到「重写」选项卡,将「启用重写」和「读取.htaccess」两个选项都设置为「是」,保存配置。

  2. 调整 .htaccess 规则
    将你原有的重写规则替换为如下内容,放在 .htaccess 文件最顶部,优先级高于 WordPress 默认规则:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^wp-content/uploads/scopes/unlocked-scopes/(.*)$ /wp-content/uploads/dl-file.php?file=$1 [QSA,L]
</IfModule>

移除冗余的 RewriteCond 规则,路径前加斜杠保证根目录匹配,适配 OpenLiteSpeed 的重写匹配逻辑。

  1. 禁用目标目录的静态资源直接返回
    这是必须配置的核心步骤:
  • 回到站点配置页,切换到「上下文」选项卡,新增一个「静态上下文」
  • 路径填写 /wp-content/uploads/scopes/unlocked-scopes/
  • 位置填写该目录在服务器上的绝对路径
  • 将「可访问」选项设置为「否」,保存配置
    配置完成后平滑重启 OpenLiteSpeed 服务生效。
  1. 可选安全优化
    建议在你现有的 PHP 校验逻辑中增加后缀白名单校验,避免目录遍历风险:
// 拼接 $file 变量之前新增如下逻辑
if (pathinfo($_GET["file"], PATHINFO_EXTENSION) !== 'pdf') {
    manage_action();
}

内容的提问来源于stack exchange,提问作者bhanu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:18:04