htaccess重定向到新页面,但保持"得到"参数

时间:2016-01-17 10:38:53

标签: apache .htaccess redirect url-redirection url-parameters

我需要将一个简单的htaccess重定向到一个新页面,同时重命名" get"参数。原始网址为:www.example.com/display_item.php?x=2735我希望重定向到: www.example.com/product.php?productcode=2735

这是我最近的尝试(很多),但这不起作用,我得到了404回复:

RedirectMatch 301 /display_item.php?x=(.*)$  /product.php?productcode=$1

我认为我非常接近解决这个问题,但此刻我正在拔头发!我已经查看了Stack Overflow的解决方案,但我找不到任何工作。

1 个答案:

答案 0 :(得分:1)

如评论中所述,查询字符串不是URI的一部分。这样,您需要使用mod_rewrite分别检查查询字符串(在条件中使用%{QUERY_STRING})。

RewriteEngine On

RewriteCond %{QUERY_STRING} ^x=(\d+)$ [NC]
RewriteRule ^display_item.php$ /product.php?id=%1 [L,R=302]

将302更改为301以使重定向成为永久性。

注意:将来,请先查询相关文档(以便更好地了解所有工作原理),然后再询问此事。