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

Apache中.htaccess重写含空格URL返回403错误求助

解决Apache重写含空格查询字符串导致的403 Forbidden错误

问题原因

Apache 2.4.19及以上版本的mod_rewrite新增了安全校验规则:当重写后的查询字符串包含空格(即使是URL编码后的%20)或控制字符时,会触发AH10411错误并返回403 Forbidden。你的场景中,多词搜索URL里的%20被重写到url参数中,正好触发了这个校验。

修复方案

修改/app/webroot/.htaccess中的重写规则,添加B(Escape Backreferences)标志,该标志会自动对重写后的反向引用内容(即$1)中的特殊字符进行URL编码,避免触发Apache的安全校验。

修改后的/app/webroot/.htaccess内容:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,B,L]

说明

  • B标志会将$1中的空格、&、=等特殊字符转义为合法的URL编码格式,确保传递给index.php的url参数符合Apache的校验要求。
  • 若修改后仍有问题,需确认Apache配置中已启用mod_rewrite,且对应目录的AllowOverride设置为All(确保.htaccess规则生效)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:12:38