301 根查询参数重定向
301 Redirect On Root Query Params
我已经尝试了几个示例来说明如何执行此操作,但没有任何效果,我担心这是因为查询字符串是基础 URL.
的一部分
这是我想做的事情:
Redirect http://example.com/?from=TEST_1 -> http://example.com/foo
Redirect http://example.com/?from=TEST_2 -> http://example.com/bar
这是我尝试过的:
RewriteEngine On
RewriteCond %{QUERY_STRING} from=TEST_1
RewriteRule (.*) /foo [L,R=301]
很遗憾,上述规则没有影响。如果我将规则更改为静态的(见下文),效果很好:
Redirect 301 /foo /bar
当它是根域请求的一部分时,我是否需要做一些特殊的事情来检查查询字符串值?
尝试将这 2 条规则作为 RewriteEngine
行下方的第一条规则。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^from=TEST_1$
RewriteRule ^/?$ /foo? [L,R=301]
RewriteCond %{QUERY_STRING} ^from=TEST_2$
RewriteRule ^/?$ /bar? [L,R=301]
目标 URI 末尾的 ?
用于丢弃目标中先前的查询字符串。
^/?$
是仅匹配着陆页的正则表达式。
我已经尝试了几个示例来说明如何执行此操作,但没有任何效果,我担心这是因为查询字符串是基础 URL.
的一部分这是我想做的事情:
Redirect http://example.com/?from=TEST_1 -> http://example.com/foo
Redirect http://example.com/?from=TEST_2 -> http://example.com/bar
这是我尝试过的:
RewriteEngine On
RewriteCond %{QUERY_STRING} from=TEST_1
RewriteRule (.*) /foo [L,R=301]
很遗憾,上述规则没有影响。如果我将规则更改为静态的(见下文),效果很好:
Redirect 301 /foo /bar
当它是根域请求的一部分时,我是否需要做一些特殊的事情来检查查询字符串值?
尝试将这 2 条规则作为 RewriteEngine
行下方的第一条规则。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^from=TEST_1$
RewriteRule ^/?$ /foo? [L,R=301]
RewriteCond %{QUERY_STRING} ^from=TEST_2$
RewriteRule ^/?$ /bar? [L,R=301]
-
目标 URI 末尾的
?
用于丢弃目标中先前的查询字符串。^/?$
是仅匹配着陆页的正则表达式。