htaccess重定向查询字符串

时间:2015-02-11 22:04:44

标签: apache .htaccess mod-rewrite redirect

如何在htaccess中将特定查询重定向到另一个URL?网址是:

http://miniwars.co.uk/player-search?location=&distance_max=&category%5B%5D=epic

位置,distance_max和类别始终存在,我只想在位置,distance_max为空,类别为“史诗”时重定向。

我想重定向到:

http://miniwars.co.uk/epic-players

我正在尝试的htaccess规则是:

RewriteCond %{QUERY_STRING} ^(category=epic|location=|distance_max=)($|&) 
RewriteRule ^player-search$ miniwars.co.uk/epic-players/ [L,R=301]

......但它没有做任何事情。有人能让我知道我哪里出错吗?

2 个答案:

答案 0 :(得分:1)

也许你应该这样试试。

RewriteEngine On
RewriteCond %{QUERY_STRING} ^(location=&distance_max=&category=epic)$ [NC] 
RewriteRule ^player-search /epic-players/ [L,R=301]

答案 1 :(得分:0)

  

我只想在位置,distance_max为空,且类别为" epic"时重定向。

您可以使用此规则:

RewriteEngine On

RewriteCond %{QUERY_STRING} (^|&)location=(&|$) [NC]
RewriteCond %{QUERY_STRING} (^|&)distance_max=(&|$) [NC]
RewriteCond %{QUERY_STRING} (^|&)category=epic(&|$) [NC]
RewriteRule ^player-search/?$ /epic-players/? [L,R=301,NC]
  • 这将允许您的查询参数为任意顺序
  • 目标URI中的
  • ?将剥离以前的查询字符串