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

.htaccess - Rewrite query string and redirect to directory

由于论坛迁移,我想修复一些旧的 URL。

旧的 URL 看起来像: http://www.example.com/forum/topic.asp?TOPIC_ID=666

我想将他们重定向到: http://www.example.com/forum/missions/666

我的方法是这样的,但是我摸不着头脑,因为根本不管用:

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

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

<IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteBase /

    RewriteRule ^forum/topic.asp\?TOPIC_ID=([0-9]+)$ forum/missions/ [L]

</IfModule>

假设 `/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]