【问题标题】:301 Redirect On Root Query Params根查询参数上的 301 重定向
【发布时间】:2015-01-14 06:06:59
【问题描述】:

我已经尝试了几个如何执行此操作的示例,但没有任何效果,我担心这是因为查询字符串是基本 URL 的一部分。

这是我想做的:

重定向http://example.com/?from=TEST_1 -> http://example.com/foo

重定向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

当它是根域请求的一部分时,为了检查查询字符串值,我需要做些什么特别的事情吗?

【问题讨论】:

    标签: .htaccess mod-rewrite redirect rewrite http-status-code-301


    【解决方案1】:

    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 末尾的? 用于丢弃目标中先前的查询字符串。
    • ^/?$ 是仅匹配着陆页的正则表达式。

    【讨论】:

      猜你喜欢
      • 2018-01-29
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多