Правила перенаправления .htaccess после переноса программного обеспечения форума - PullRequest
0 голосов
/ 29 декабря 2018

В настоящее время мы обновляем программное обеспечение форума нашего сайта, и нам нужно перенаправить все старые 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

Любая помощь в получении этой работы будет принята с благодарностью!

1 Ответ

0 голосов
/ 06 апреля 2019

проверить это!

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

добавить эти коды ниже RewriteEngine On на .htaccess файл

...