使用htaccess将URL重定向到另一个URL

时间:2017-10-09 14:34:47

标签: .htaccess mod-rewrite

最近我将我网站上的一些文章从一个类别更改为另一个类别,现在我想将重定向放在htaccess中,这样当用户在搜索引擎中找到它之前的地址然后重定向到新地址时:

example.com/sport/spdetails.php?articleid=28984&parentid=184&catid=184

重定向到:

example.com/sport/spdetails.php?articleid=anynumber&parentid=184&catid=189

1 个答案:

答案 0 :(得分:1)

使用mod_rewrite尝试使用.htaccess文件顶部附近的内容:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^articleid=(\d+)&parentid=184&catid=184$
RewriteRule ^sport/spdetails\.php$ /sport/spdetails\.php?articleid=%1&parentid=184&catid=189 [R,L]

%1是对最后匹配的 CondPattern 中捕获的模式(articleid值)的反向引用,即。查询字符串。

这是临时(302)重定向。只有当您确定它正常工作时才将其更改为R=301(永久)。

<强>更新

  

我有50篇文章,我想用catid将其网址重定向为184到189,但在htaccess中有一行代码

假设您要将这些重定向到相同的catid,即189(如您的问题所示),那么您可以将RewriteCond指令更改为:

RewriteCond %{QUERY_STRING} ^articleid=(\d+)&parentid=184&catid=18[4-9]$