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

如何让WordPress忽略文件URL多余点号 识别.jpg后缀解决415错误

解决WordPress识别多后缀文件返回415错误的方案

方案1:通过WordPress钩子修正MIME识别逻辑

WordPress默认的文件类型检测逻辑对文件名带多个点的场景支持不佳,你可以添加以下代码到当前主题的functions.php文件,或者自定义功能插件中,强制仅使用文件最后一个后缀判断MIME类型:

add_filter('wp_check_filetype_and_ext', 'fix_multi_dot_file_mime_recognition', 10, 4);
function fix_multi_dot_file_mime_recognition($filetype, $file, $filename, $mimes) {
    // 仅处理上传目录的文件,不影响其他业务逻辑
    if (strpos($file, WP_CONTENT_DIR . '/uploads/') === false) {
        return $filetype;
    }
    // 提取最后一个点后的后缀
    $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
    if (empty($ext)) {
        return $filetype;
    }
    // 匹配WordPress内置的MIME映射规则
    $mime_types = wp_get_mime_types();
    foreach ($mime_types as $exts => $mime) {
        if (in_array($ext, explode('|', $exts), true)) {
            $filetype['ext'] = $ext;
            $filetype['type'] = $mime;
            $filetype['proper_filename'] = $filename;
            break;
        }
    }
    return $filetype;
}

添加后清空缓存即可生效,所有上传目录下的文件都会按最后一个后缀识别格式。

方案2:服务器层面配置(适用于415由服务端直接返回的场景)

如果请求没有走到WordPress逻辑就返回415,可直接修改服务器配置,强制上传目录的文件按最后一个后缀返回正确的Content-Type头:

Nginx配置

在站点的Nginx配置server块中添加以下规则:

location ~* ^/wp-content/uploads/.*\.([a-zA-Z0-9]+)$ {
    types {
        image/jpeg jpg jpeg;
        image/png png;
        image/gif gif;
        # 可自行扩展其他需要支持的后缀和对应MIME类型
    }
    try_files $uri =404;
}

修改后执行nginx -s reload重载配置即可。

Apache配置

在wp-content/uploads目录下新建.htaccess文件,添加以下内容:

<IfModule mod_mime.c>
    RemoveType .*
    AddType image/jpeg .jpg .jpeg
    AddType image/png .png
    AddType image/gif .gif
    # 可自行扩展其他需要支持的后缀和对应MIME类型
</IfModule>

保存后即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:36:03