我想使用精确的网址从旧网站进行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)
任何帮助将不胜感激。
答案 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]