url重定向完全匹配,包括params

时间:2015-04-29 07:26:01

标签: .htaccess

我想使用精确的网址从旧网站进行301重定向而不需要额外的参数。

示例:

/en-direct.php?page=7

转到:

http://www.example.org/news/

和页面:

/en-direct.php?page=8

转到:

http://www.example.org/awesome-but-totally-different-page/

我用过:

redirectMatch 301 ^/en-direct.php$ http://www.example.org/different-page/
redirectMatch 301 ^/en-direct.php?page=7$ http://www.example.org/news/
redirectMatch 301 ^/en-direct.php?page=8$ http://www.example.org/awesome-but-totally-different-page/

但是:我每次都会获得http://www.example.org/different-page/来自重定向页面的所有参数(例如 - http://www.example.org/different-page?page=7

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

为了匹配查询字符串,您需要使用mod_rewrite:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^page=7($|&)
RewriteRule ^en-direct\.php$ http://www.example.org/news/ [L,R=301]

RewriteCond %{QUERY_STRING} ^page=8($|&)
RewriteRule ^en-direct\.php$ http://www.example.org/awesome-but-totally-different-page/ [L,R=301]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^en-direct\.php$ http://www.example.org/different-page/ [L,R=301]