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

.htaccess配置中RewriteRule报‘bad flag delimiters’错误的原因排查

.htaccess配置中RewriteRule报‘bad flag delimiters’错误的原因排查

嗨,我来帮你捋捋这个问题~你碰到的“RewriteRule: bad flag delimiters”错误,问题根源出在你写的那条RewriteRule语句上:

RewriteRule ([^/]+)\.pdf $ - [E=FILENAME:$1]

问题分析

RewriteRule的标准语法是 RewriteRule 匹配模式 替换目标 [标记],你这里在替换目标位置写了$ -,完全不符合规则:

  • $是无意义的多余字符,Apache会把它当成你的替换目标,后面的-就会被错误识别为标记的一部分,而标记必须用[]包裹,这种混乱的结构直接触发了“标记分隔符错误”的提示。
  • 如果你只是想设置环境变量而不做URL替换,替换目标应该直接用-,它的作用就是表示“不进行任何替换操作”。

修正后的代码

把那条RewriteRule改成下面这样就能解决问题了:

<FilesMatch "\.pdf$">
    RewriteRule ([^/]+)\.pdf - [E=FILENAME:$1]

    <If "%{REQUEST_URI} =~ m#^/wp-content/themes/my_theme/pdf/fr/.*#">
        Header add Link '<https://www.example.com/wp-content/my_theme/theme_SES/pdf/fr/%{FILENAME}e>; rel="canonical"'
    </If>
</FilesMatch>

说白了就是删掉多余的$,让替换目标只有-,这样Apache就能正确识别后面的[E=FILENAME:$1]是合法的标记了。

备注:内容来源于stack exchange,提问作者Zekura

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 10:17:59