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

时间:2015-01-09 22:25:35

标签: string apache .htaccess mod-rewrite redirect

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

旧网址如下: 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]

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

<IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteBase /

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

</IfModule>