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

基于查询字符串的Apache Rewrite规则在全局配置文件中不生效问题求助

基于查询字符串的Apache Rewrite规则在全局配置文件中不生效问题求助

我现在碰到个棘手的问题:想在Apache的全局配置文件(存放在conf-available/目录下,已经通过a2enconf命令启用)里检测URL查询字符串中是否存在特定键值对foo=bar,如果存在就执行跳转操作。

我写的代码很简单:

RewriteCond %{QUERY_STRING} foo=bar [NC]
RewriteRule ^(.*)$ http://linkedin.com [R=301,L]

跳转去LinkedIn只是为了测试效果(毕竟这样能一眼看出规则是否生效),但目前完全没反应。

为了确认这个配置文件确实被Apache加载了,我在这段Rewrite代码上方加了一段测试代码:

RedirectMatch 301 ^(.*)$ http://www.cnn.com$1

这段RedirectMatch完全正常,一访问就跳转到CNN,说明配置文件是生效的,但下面的Rewrite规则就是不工作。

补充下运行环境:Apache是在Docker容器里运行的,本地的8080端口映射到容器的80端口,我访问的测试地址是http://localhost:8080?foo=bar。另外,如果把这段Rewrite代码放到.htaccess文件里,完全能正常触发跳转,这就让我更困惑了。

我是不是钻进某个细节盲区了,漏掉了什么显而易见的点?


更新:完整配置文件内容

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Verifies that this conf is loading properly
    # RedirectMatch 301 ^(.*)$ http://www.cnn.com$1

    RewriteCond %{QUERY_STRING} foo=bar [NC]
    RewriteRule ^(.*)$ http://linkedin.com [R=302,L]
</IfModule>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:17:59