旧url在.htaccess中不工作

旧url在.htaccess中不工作,.htaccess,.htaccess,我已经在我的网站上更新了系统,所以我想为新页面的链接做一些重定向 我正在尝试以下重写规则^jor/index.php?option=com\u content&task=view&id=([0-9])和Itemid=([0-9])$index.php?page=article&id=$1 但它不起作用。只是一个“无效链接” 如何使其302重定向 谢谢您不能直接将查询字符串与重写规则匹配;它将仅与文件路径匹配。您需要使用RewriteCond和%1(而不是$1) 请注意以下几点: 1) 假设id后

我已经在我的网站上更新了系统,所以我想为新页面的链接做一些重定向

我正在尝试以下重写规则^jor/index.php?option=com\u content&task=view&id=([0-9])和Itemid=([0-9])$index.php?page=article&id=$1

但它不起作用。只是一个“无效链接”

如何使其302重定向


谢谢

您不能直接将查询字符串与重写规则匹配;它将仅与文件路径匹配。您需要使用
RewriteCond
%1
(而不是
$1

请注意以下几点:

1) 假设id后面跟着itemid,itemid后面跟着字符串的结尾<代码>项目id=1337&id=42将不起作用,因为订单已交换

2) 该规则不对查询字符串的其余部分进行假设。它也可以从
option=com\u radio
开始


3) 请注意
+
后面的
[0-9]
需要匹配多个字符。(
+
表示“一个或多个”)

我忘了回答你的第二个问题。使用
[R=302,L]
执行302重定向。我已经更新了答案。
RewriteCond %{QUERY_STRING} id=([0-9]+)&Itemid=([0-9]+)$
RewriteRule ^jor/index.php index.php?page=article&id=%1&itemid=%2 [R=302,L]