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

URL无PHP扩展名时Dropzone上传触发Apache 406 Not Acceptable错误

Dropzone无.php扩展名URL上传报406 Not Acceptable的解决经历

最近用Dropzone实现文件上传功能时,踩了个挺棘手的坑:访问集成插件的页面时,如果URL不带.php扩展名,往Dropzone区域拖放文件就会触发406 Not Acceptable错误;但只要URL带上.php(或者.html)扩展名,上传功能就完全正常。

尝试过的无效方案

一开始我试了好几种常规方法,都没解决问题:

  • 在服务器配置里添加了AddHandler type-map var和MultiviewsMatch Handlers Filters参数
  • 在.htaccess里关闭了mod_security模块:
<IfModule mod_security.c>
 SecFilterEngineOff
 SecFilterScanPOSTOff
</IfModule>

这些操作都没起作用,只有切换到带.php扩展名的URL,上传才能恢复正常。

关键发现

后来我仔细对比了两种URL下的请求响应头,发现了核心差异:

  • URL带.php时,服务器响应头的Content-Type是text/html; charset=UTF-8
  • URL不带.php时,响应头的Content-Type变成了text/html; charset=iso-8859-1
    而Dropzone发送的请求头里,Accept始终是application/json,这应该是导致406错误的根源——服务器返回的编码格式不符合Dropzone的预期。

最终解决方法

最后我在.htaccess里添加了一段重写规则,问题就彻底解决了,现在不带.php扩展名的URL也能正常使用Dropzone上传了:

<IfModule mod_rewrite.c>
 Options +FollowSymLinks -MultiViews
 RewriteEngine on
 RewriteCond %{REQUEST_URI} !-d
 RewriteCond %{REQUEST_URI}\.php !-f
 RewriteRule ^([^\.]+)$ $1.php [NC,L]
</IfModule>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:13:14