我尝试检测查询字符串中是否存在特定名称/值对,如果存在,则执行某项操作。我尝试在存储在中的 conf 文件中执行此操作,conf-available/
并在a2enconf
运行后启用它。代码很小:
RewriteCond %{QUERY_STRING} foo=bar [NC]
RewriteRule ^(.*)$ http://linkedin.com [R=301,L]
不,重定向到 linkedin(或任何其他地方)不是我的最终目标,但我想让它做一些非常明显的事情,只是为了知道它正在工作(显然它没有)。为了验证此 conf 是否已加载并且其代码正在执行,我在上面添加了以下代码片段:
RedirectMatch 301 ^(.*)$ http://www.cnn.com$1
工作RedirectMatch
如预期。RewriteRule
不工作。
Apache 在 docker 容器内运行,我的本地 :8080 被转发到容器上的 :80。我正尝试访问 上的站点http://localhost:8080?foo=bar
。如果我将完全相同的代码移动到文件中.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>