Редирект

S
На сайте с 20.10.2014
Offline
27
457

Коллеги, прошу помощи. Поменял у себя структуру постоянных ссылок на сайте. Сделал редирект через htaccess, который работает - старые ссылки переходят на новые. Но возникла проблема с некоторыми URL новых записей, которые заканчиваются на цифру или цифры. Например post-999 не откроется с ошибкой "слишком много переадресаций", а в адресной строке он обрезается до post.

Я использую вот такой редирект:

RedirectMatch 301 ^/([^/]+)-(\d+)/$ https://mysite.ru/$1

Ранее структура ссылок была /post-name-post_id/, стала /post-name/.

Что в нем не так и как сделать чтобы и редиректы были и новые URL работали корректно?

fliger
На сайте с 17.09.2015
Offline
107
#1

Так в регулярном выражении цифры обрезаются. Как они в новую ссылку попадут, если вы их зачем-то захватываете, но обрезаете?

S
На сайте с 20.10.2014
Offline
27
#2

Я регулярных выражениях мягко говоря не очень) Что там нужно исправить не подскажите?

Samail
На сайте с 10.05.2007
Offline
361
#3

Если я правильно понял нужно /post-999-777/ на /post-999 редиректить?

RedirectMatch 301 ^/([^/]+-[^/]+)-(\d+)/$ https://mysite.ru/$1
S
На сайте с 20.10.2014
Offline
27
#4

Да. И что бы так же работали посты где в конце названия просто цифра или цифры. А они даже с вашим вариантом не работают.

Хотя цифра в конце с вашим вариантом обрезаться перестала.

Samail
На сайте с 10.05.2007
Offline
361
#5
serenitatis:
А они даже с вашим вариантом не работают.

/post-999 при такой ссылке идёт циклическая переадресация?

А если убрать совсем это правило, работает? Вообще не должно срабатывать на такой ссылке, в регулярке два тире и слеш на конце, а в данном урле одно тире и слеша нет. Может ещё какие-то правила есть не упомянутые в этой теме?

S
На сайте с 20.10.2014
Offline
27
#6
Samail:
/post-999 при такой ссылке идёт циклическая переадресация?

Да. Такие ссылки не работают с ошибкой ERR_TOO_MANY_REDIRECTS. Переадресация со старых URL на новые работает.

Если я убираю правило из htaccess ссылки типа post-999 открываются корректно.

Я вроде дал всю вводную, нюансов никаких не забыл. Что интересно, если делать переадресацию средствами плагина для WordPress все отлично работает.

Думаю, что в итоге на этом варианте и остановлюсь, раз с htaccess какие-то сложности возникают. Просто не хочется плодить плагины, когда задача явно можно решить более красивее :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий