Apache 重定向匹配添加神秘的查询字符串

Apache 重定向匹配添加神秘的查询字符串,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我升级了某人的论坛,有无数的URL需要301重定向到他们的新家。例如: http://www.elfquest.com/social/forum/thread/7851/posters-in-comics/post_572519/ 应该指向 http://www.elfquest.com/forums/discussion/7851/posters-in-comics/post_572519/ 我找到了一个匹配的方法: redirectMatch 301 ^/social/forum/t

我升级了某人的论坛,有无数的URL需要301重定向到他们的新家。例如:

http://www.elfquest.com/social/forum/thread/7851/posters-in-comics/post_572519/  
应该指向

http://www.elfquest.com/forums/discussion/7851/posters-in-comics/post_572519/
我找到了一个匹配的方法:

redirectMatch 301 ^/social/forum/thread/(.*) http://www.elfquest.com/forums/discussion/$1
但它在末尾添加了一个奇怪的查询字符串,如下所示:

http://www.elfquest.com/forums/discussion/7851/posters-in-comics/post_572519/?do=/forum/thread/7851/posters-in-comics/post_572519/
新的论坛软件(包括搜索引擎HTML中的正确规范引用)可以毫无问题地处理结果,但我真的希望它“正确”

这是我的.htaccess

redirectMatch 301 ^/social/forum/thread/(.*) http://www.elfquest.com/forums/discussion/$1

RewriteOptions inherit
php_value include_path .:/home/elfquestftp/public_html/phpcode
Addhandler application/x-httpd-php .html .htm
#php_flag register_globals on

RewriteEngine on

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

…而且它似乎没有任何作用。

不要将
mod\u rewrite
规则与
mod\u alias
规则混合使用。将您的
重定向匹配
替换为以下内容:

RewriteEngine On

RewriteRule ^social/forum/thread/(.*) http://www.elfquest.com/forums/discussion/$1? [L,R=301,NC]

目标URL末尾的
将删除任何现有的查询字符串。

我担心这不会起任何作用(重定向根本不会发生,即使我删除了.htaccess中除建议行以外的所有内容),请确保这是一条非常重要的规则。你们在浏览器中使用了什么URL?这很奇怪,因为你们已经有了下面的重写规则,我想这些规则对你们有用。这是文档根目录中的.htaccess还是某个子目录中的?
RewriteEngine On

RewriteRule ^social/forum/thread/(.*) http://www.elfquest.com/forums/discussion/$1? [L,R=301,NC]