【问题标题】:Strip specific parameteters when redirecting with Mod-Rewrite使用 Mod_rewrite 重定向时去除特定参数
【发布时间】:2009-05-27 15:19:20
【问题描述】:

我有一个非常复杂的 RewriteRule,我需要检查 QueryString 中是否存在某些参数,然后重定向到相同的 URL,但这些参数被剥离。

如何删除一些参数并保留其余参数?

RewriteCond %{QUERY_STRING} color=red
RewriteCond %{QUERY_STRING} status=contiue
RewriteRule ^(.*)$ /$1? [R=301,L]

网址是这样的:

"http://example.com/site.php?setup=done&color=red&weight=100&status=continue"

(参数顺序和数量不可预测/硬编码)

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect parameters


    【解决方案1】:

    试试这些规则:

    RewriteCond %{QUERY_STRING} ^(([^&]*&)*)(color=red|status=continue)($|&)(.*)
    RewriteRule .* $0?%1%5 [N,E=REMOVED:true]
    RewriteCond %{ENV:REMOVED} true
    RewriteRule ^ %{REQUEST_URI} [L,R=301]
    

    另一种方法是使用 PHP 检查给定的参数并在那里删除它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多