String .htaccess-重写查询字符串并重定向到目录

String .htaccess-重写查询字符串并重定向到目录,string,apache,.htaccess,mod-rewrite,redirect,String,Apache,.htaccess,Mod Rewrite,Redirect,由于论坛迁移,我有一些旧的URL需要修复 旧URL的外观如下所示: 我想将它们重定向到: 我的方法是这样的,但我有些挠头,因为它根本不起作用: RewriteCond %{QUERY_STRING} ^TOPIC_ID=(.*)$ [NC] RewriteRule ^/forum$ /forum/missions/%1 [NC,L,R=301] 我建议这样做,但不能从这里真正尝试:) 重新启动发动机 重写基/ 重写规则^forum/topic.asp\

由于论坛迁移,我有一些旧的URL需要修复

旧URL的外观如下所示:

我想将它们重定向到:

我的方法是这样的,但我有些挠头,因为它根本不起作用:

RewriteCond %{QUERY_STRING}     ^TOPIC_ID=(.*)$    [NC]
RewriteRule ^/forum$       /forum/missions/%1      [NC,L,R=301]

我建议这样做,但不能从这里真正尝试:)


重新启动发动机
重写基/
重写规则^forum/topic.asp\?topic_ID=([0-9]+)$forum/missions/$1[L]

假设`/forum/中没有.htaccess,您可以在根目录中使用此第一条规则

RewriteCond %{QUERY_STRING} ^TOPIC_ID=([^&]+) [NC]
RewriteRule ^forum/topic\.asp$ /forum/missions/%1? [NC,L,R=302]
如果
/forum/
中有.htaccess,则可以在
/forum/.htaccess
中使用此第一条规则:

RewriteCond %{QUERY_STRING} ^TOPIC_ID=([^&]+) [NC]
RewriteRule ^topic\.asp$ /forum/missions/%1? [NC,L,R=302]

这似乎是相反的。您似乎希望用户能够访问并查看服务器解析为什么。是这样吗?谢谢,第一个就像预期的一样。我可以从这里继续使用以下语法:)您不能这样做,因为查询字符串(part after?)不在RewriteRule used字符串中。我确实需要一个关于此的课程:)
RewriteCond %{QUERY_STRING} ^TOPIC_ID=([^&]+) [NC]
RewriteRule ^topic\.asp$ /forum/missions/%1? [NC,L,R=302]