.htaccess htaccess:重定向到同一页,但查询字符串值不同

.htaccess htaccess:重定向到同一页,但查询字符串值不同,.htaccess,mod-rewrite,query-string,.htaccess,Mod Rewrite,Query String,我有一个带有查询字符串的页面,我想将其重定向到具有不同查询字符串值的同一页面: www.mysite.com/pages/page.php?id=5(这是旧页) www.mysite.com/pages/page.php?id=7(这是需要重定向到的新页面) 它不起作用。有人能帮我吗?谢谢 您的.htaccess文件在哪里?在根目录或页面?中,您希望它是外部重定向吗?还是内部的?它也需要在地址栏中更改,我不知道这是否有帮助。请注意:您可能希望在PHP中执行此操作,而不是mod_rewrite。A

我有一个带有查询字符串的页面,我想将其重定向到具有不同查询字符串值的同一页面:

www.mysite.com/pages/page.php?id=5
(这是旧页)
www.mysite.com/pages/page.php?id=7
(这是需要重定向到的新页面)


它不起作用。有人能帮我吗?谢谢

您的
.htaccess
文件在哪里?在根目录或
页面
?中,您希望它是外部重定向吗?还是内部的?它也需要在地址栏中更改,我不知道这是否有帮助。请注意:您可能希望在PHP中执行此操作,而不是mod_rewrite。AFAICS在htaccess中无法安全地查询查询字符串,因此您要么没有足够的重定向(即
?id=5&PHPSESSID=…
不起作用),要么太多(即
?id=51
匹配,如果您使其太贪婪)。在任何情况下,请尝试用斜线在路径前面加上前缀,也就是说,
^pages/page\.php$
^/pages/page\.php$
。我已经尝试过了,但没有结果。基本上,请求的页面(旧页面)只是加载了我编辑过的答案!如果没有帮助,请尝试清除缓存,然后重试!看,重写规则很好,我能猜到的唯一问题是你的浏览器缓存重定向!
RewriteEngine on

RewriteCond %{QUERY_STRING} ^id=5$ [NC]

RewriteRule ^pages/page\.php$   http://%{HTTP_HOST}/pages/page.php?id=7 [R=301,L,NC]
RewriteEngine on

RewriteCond %{QUERY_STRING} ^id=5$ [NC]

RewriteRule ^pages/page\.php$   http://%{HTTP_HOST}/pages/page.php?id=7 [R=301,L,NC]