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

.htaccess添加RewriteRule规则报Bad flag delimiter错误求助

问题成因
  • 报错直接触发点是RewriteRule规则的标记位语法错误:当前写法为[QSA, L],逗号与L标记之间存在多余空格。Apache mod_rewrite模块解析规则标记时,仅支持无空格的逗号作为标记分隔符,出现多余空格就会抛出bad flag delimiters错误,导致整个.htaccess配置加载失败,站点访问中断。
  • 额外配置隐患:你贴出的代码中<Limit>配置块被写成了HTML转义格式&lt;Limit PUT DELETE OPTIONS&gt;,如果实际.htaccess文件中确实写入的是转义字符而非原生尖括号,这部分配置不会被Apache识别,会被当作普通无效文本处理。
修复步骤
  1. 修正重写规则的标记写法,删除逗号后的多余空格,修正后的重写规则段如下:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)crm.php(.*)$ /admin/crm.php [QSA,L]
  1. 检查请求方法限制块的写法,确保文件中使用原生尖括号包裹标签,不要使用HTML转义字符,修正后该段配置为:
<Limit PUT DELETE OPTIONS>
    Order allow,deny
    Allow from all
</Limit>
  1. 保存修改后的.htaccess文件即可,.htaccess是目录级动态配置,每次请求会自动重新加载,无需重启Apache服务,直接刷新站点验证访问即可,错误日志中的标记分隔符报错会同步消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:42:18