WordPress站点新上传PDF文件出现404错误求助
解决WordPress站点新上传PDF文件404问题
第一步:确认文件真实存在且路径正确
- 登录服务器(或通过FTP/文件管理器),到
/site/wwwroot/policies目录下,确认新上传的413-Progressive_Discipline.pdf确实存在,没有拼写错误(注意:Linux服务器区分文件名大小写,如果文件名大小写和URL里的不一致会直接404)。 - 对比正常文件
F2-3_Transcript_Requests.pdf的文件名格式,检查新文件是否包含空格、非ASCII字符(比如中文、特殊符号),有的话重命名为纯英文+下划线/短横线的格式。
第二步:检查文件与目录权限
- 给新PDF文件设置和正常PDF一致的权限,一般是
644(所有者读写,组和其他只读),policies目录权限设为755。 - 如果是通过WordPress后台上传的文件,确认上传目录的权限配置正确,避免服务器因权限不足拒绝访问新文件。
第三步:排查.htaccess规则问题
- 打开站点根目录的
.htaccess文件,检查是否有针对PDF文件的特殊拦截规则,比如只允许特定开头的PDF访问,或者Rewrite规则误匹配了新文件路径。 - 先备份当前
.htaccess文件,然后替换为WordPress默认规则测试:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
- 如果默认规则能解决问题,说明之前的自定义规则存在问题,需要逐一排查添加的规则,比如是否有类似
RewriteRule ^policies/[A-Z].*\.pdf$ - [L]这种只允许大写字母开头的PDF,导致以数字开头的413-...被拦截。
第四步:清除缓存与刷新固定链接
- 清除浏览器缓存、站点缓存插件的缓存(如果使用了缓存插件),以及CDN缓存(如果配置了CDN),避免旧的404缓存导致无法访问新文件。
- 登录WordPress后台,进入「设置」→「固定链接」,无需修改任何设置,直接点击「保存更改」,让WordPress重新生成Rewrite规则,修复可能的规则冲突。
第五步:检查服务器配置(Apache/Nginx)
- 若使用Apache服务器,确认
mod_rewrite模块已启用,且站点配置中设置了AllowOverride All(允许.htaccess生效)。 - 若使用Nginx服务器,检查配置文件中是否有针对静态文件的正确规则,确保PDF文件不会被错误转发到WordPress的index.php处理,示例规则:
location ~* \.pdf$ { root /site/wwwroot; try_files $uri $uri/ =404; }
内容的提问来源于stack exchange,提问作者nonemauro
相关产品推荐
相关产品推荐

