【发布时间】:2012-09-01 23:22:32
【问题描述】:
我有一个带有查询字符串的页面,我想重定向到具有不同查询字符串值的同一页面:
www.mysite.com/pages/page.php?id=5(这是旧页面)www.mysite.com/pages/page.php?id=7(这是需要重定向到的新页面)
RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=5$ [NC]
RewriteRule ^pages/page\.php$ pages/page.php?id=7 [R=301,L]
它不起作用。有人可以帮助我吗?谢谢!
【问题讨论】:
-
您的
.htaccess文件在哪里?在根目录或pages? -
你希望它是外部重定向吗?还是内部?
-
地址栏也要改一下,不知道有没有用。
-
请注意:您可能希望在 PHP 中执行此操作,而不是 mod_rewrite。 AFAICS 没有办法在 htaccess 中安全地查询查询字符串,所以你要么得到足够的重定向(即
?id=5&PHPSESSID=...不起作用)要么太多(即如果你让它太贪婪,?id=51会匹配)。 -
在任何情况下,尝试在路径前加上斜杠,即
^pages/page\.php$到^/pages/page\.php$。
标签: .htaccess mod-rewrite query-string