htaccess与的链接?和非数字参数


htaccess for links with ? and non numeric parameter

在.htaccess中我有:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
RewriteRule ^name/body/test$ http://%{HTTP_HOST}/new_name [L,R=301] #1 - OK
RewriteRule ^name-450$ http://%{HTTP_HOST}/name450[L,R=301] #2 - OK
RewriteRule ^name.php?id=13&new_id=8$ http://%{HTTP_HOST} [L,R=301] #3 - NOT WORKING
RewriteRule ^data/others/aaa/all/bbb/all/ccc/750$ http://%{HTTP_HOST}/new_data [L,R=301] #4 - NOT WORKING
RewriteRule ^data/others/aaa/1/bbb/2/ccc/750$ http://%{HTTP_HOST}/new_data [L,R=301] #5 - OK
RewriteRule ^?num=123$ http://%{HTTP_HOST} [L,R=301] #6 - NOT WORKING
</IfModule>

为什么3、4和6不起作用?我该怎么做?

规则3和6最终如下所示:

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} id=13&new_id=8
RewriteRule ^name.php$ http://%{HTTP_HOST}/? [L,R=301]
RewriteCond %{QUERY_STRING} ^num=123$
RewriteRule .* http://%{HTTP_HOST}/? [L,R=301]

规则4在我看来很好,所以只能表明你没有正确测试它。