301 htaccess中url模式的重定向

时间:2013-08-25 19:22:05

标签: .htaccess redirect

以前我在主域安装了vbulletin论坛。现在我用WP博客替换它并将论坛转移到子文件夹。 WP和vB都有单独的htaccess文件。请帮我将旧的论坛网址重定向到新的。

旧网址格式:

www.domain.com/f1/post-title/
www.domain.com/f2/post-title/
www.domain.com/f3/post-title/

新网址格式:

www.domain.com/forums/f1/post-title/
www.domain.com/forums/f2/post-title/
www.domain.com/forums/f3/post-title/

请有人帮我重写正确重定向的规则。还要提一下htaccess(WP或vB)放置代码。提前谢谢。

1 个答案:

答案 0 :(得分:0)

需要将其放在您网域根文件夹的.htaccess上。

因此,如果您的根文件夹是/home/youraccount/public_html/,那么在该文件夹的.htaccess中。

这将按照您上面的要求重定向,任何forum/topicforums/forum/topic

Options +FollowSymLinks -MultiViews

RewriteEngine on
RewriteBase /

RewriteRule ^(f\d+)/([^/]+)/?$ /forums/$1/$2/ [R=301,L]

我可以使用([^/]+)两次但是因为你提到你现在在根目录中有一个WordPress,那么你应该需要一个更具体的规则来处理第一个文件夹,如上所述。

这将与论坛ID f1f2 ...匹配任意数量的数字:

(f\d+)

这将获得任何不是/的内容,因此它将完全获得帖子ID和标题。

([^/]+)

如果您的.htaccess文件中有更多规则,请确保在RewriteEngine on之后和任何其他规则之前放置此规则,这样它就不会与其他规则冲突并按您的要求重定向:< / p>

RewriteRule ^(f\d+)/([^/]+)/?$ /forums/$1/$2/ [R=301,L]