![Правило перезаписи .htaccess, извлечение числа в переменную запроса](https://rvso.com/image/652671/%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8%20.htaccess%2C%20%D0%B8%D0%B7%D0%B2%D0%BB%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%87%D0%B8%D1%81%D0%BB%D0%B0%20%D0%B2%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%83%D1%8E%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0%20.png)
Я переношу огромный сайт со старой фирменной CMS на WordPress и мне нужно перенаправить старую структуру URL-адресов.
В старой системе было много странных URL-адресов, но их всех объединяет то, что они содержат номер, который идентифицирует публикацию, например:
example.com/something/else/123456/another/thing.html
example.com/something/98765/thing.html
example.com/something/2468/.html
(Третье — не опечатка!)
Какое правило перезаписи htaccess перенаправит любой из них на URL-адрес вида example.com?oid=1234
, где oid
номер извлечен из старого URL-адреса?
Пока что я придумал вот это, но это не работает:
RewriteRule ^/.*([0-9]+)/.*\.html /?oid=$1
решение1
После многих проб и ошибок я пришел к такому выводу:
RewriteRule ^(.+/)+([0-9]+)/.*\.html ?oid=$2