WordPress站点uploads目录图片404无法访问,求排查建议
无法访问WordPress上传目录中的图片,求故障排查思路
已完成的排查步骤
文件权限与归属验证
-rw-r--r-- 1 www-data www-data 394446 Dec 25 09:10 pony.jpg 文件路径: /srv/rufus/david_public_html/wp-content/uploads/2022/12/pony.jpg
Nginx配置确认
站点核心location规则如下:
location / { try_files $uri $uri/ /index.php?$args; }
访问目标图片时的Nginx错误日志:
"GET /wp-content/uploads/2022/12/pony.jpg HTTP/2.0" 404 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" "-"
当前疑问与尝试
我怀疑是Nginx的try_files指令导致问题,但uploads目录外的图片能正常加载。比如我曾修改规则为:
try_files $uri $uri/ /wp-content/uploads/$uri /index.php?$args;
期望依次尝试请求URI、带尾斜杠的URI、uploads目录下的对应文件,最后转向index.php,但问题依旧。
奇怪的是主题目录下的图片可正常访问,例如:
-rw-r--r-- 1 www-data www-data 103639 Dec 24 23:06 david_public_html/wp-content/themes/twentytwentytwo/assets/images/flight-path-on-transparent-d.png
可以通过对应链接正常打开,说明问题仅出在uploads目录。
完整访问日志片段:
37.134.110.4 - - [25/Dec/2022:15:53:40 +0000] "GET //wp-content/themes/twentytwentytwo/assets/images/flight-path-on-transparent-d.png HTTP/2.0" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" "-" 37.134.110.4 - - [25/Dec/2022:15:53:48 +0000] "POST /wp-admin/admin-ajax.php HTTP/2.0" 200 47 "https://david.theboohers.org/wp-admin/upload.php?item=5" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" "-" 37.134.110.4 - - [25/Dec/2022:15:54:03 +0000] "GET /wp-content/uploads/2022/12/pony.jpg HTTP/2.0" 404 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" "-"
圣诞快乐,感谢各位的排查建议!
内容的提问来源于stack exchange,提问作者bonhoffer
相关产品推荐
相关产品推荐

