Apache 重定向匹配添加神秘的查询字符串
我升级了某人的论坛,有无数的URL需要301重定向到他们的新家。例如: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
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]