.htaccess – 重写查询string并redirect到目录

我有一些旧的URL,我想要修复,因为论坛迁移。

旧url的格式如下所示: http : //www.example.com/forum/topic.asp?TOPIC_ID=666

我想将它们redirect到: http : //www.example.com/forum/missions/666

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

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

假设`/ forum /中没有.htaccess,你可以在你的根目录.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] 

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

 <Ifmodulee mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^forum/topic.asp\?TOPIC_ID=([0-9]+)$ forum/missions/$1 [L] </Ifmodulee>