论坛软件迁移后的.htaccess重定向规则

时间:2018-12-29 11:41:43

标签: regex .htaccess xenforo

我们当前正在升级站点论坛软件,需要将所有旧的论坛主题URL重定向到新格式。

我们尝试了几件事,但由于不同的.htaccess重定向规则存在冲突,因此无法正常工作。

旧格式: https://www.example.com/beta/news-and-announcements/1354-thread-name.html

新格式: https://www.example.com/beta/threads/thread-name.1354/

我们希望将它们重定向到301,以确保一切正常。

第一个URL中的

新闻和公告是动态的子论坛名称。 1354是线程ID-实际上,这是唯一需要保留并移到新URL的位。 线程名称-论坛线程名称-只要ID在正确的位置,新的论坛软件就会将其重写为正确的名称。

这是默认的.htaccess mod_rewrite部分:

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

我们已尝试将其扩展为涵盖来自此类旧URL结构的一些其他重定向,但它不起作用:

RewriteBase /beta/
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule (.*)\/(\d*)-(.*).html$ threads/$2 [NC,L]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

上述重定向无效,并且还会以某种方式破坏AdminCP URL:

https://www.example.com/beta/admin.php

在此方面的任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

测试!

RewriteRule ^news-and-announcements/(\d+)-(.+).html /threads/$2.$1/? [R=301,NC,L]

将此代码添加到RewriteEngine On文件的 .htaccess