在.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在我看来很好,所以只能表明你没有正确测试它。