В настоящее время мы обновляем программное обеспечение форума нашего сайта, и нам нужно перенаправить все старые 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структура, обеспечивающая непрерывную работу.
новости и объявления в первом URL-адресе - это динамическое имя подфорума.1354 - это идентификатор потока - это действительно единственный бит, который нужно сохранить и перенести на новый URL.thread-name - имя ветки форума - если идентификатор находится в правильном месте, он будет переписан для корректной работы новым программным обеспечением форума.
Это раздел по умолчанию .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]
Вышеуказанное перенаправление не работает, а также прерываетсяURL-адреса AdminCP как-то:
https://www.example.com/beta/admin.php
Любая помощь в получении этой работы будет принята с благодарностью!