Почему шаблон регулярного выражения не дает мне правильный вывод в перенаправлении URL? - PullRequest
0 голосов
/ 21 мая 2018

Я нахожусь в процессе миграции сайта, на котором есть несколько URL-адресов, нуждающихся в переадресации 301.

Мы просматривали сайт и пытались найти наилучший способ получения URL-адресов,в настоящее время существует и заставляет их работать с новым сайтом.

Проблемы, с которыми мы сталкиваемся, заключаются в том, что многие URL-адреса имеют глубину 3 сегмента на старом сайте, а новый имеет только 1 сегмент, и нам нужносопоставьте слагов и убедитесь, что мы можем определить слаг в старом URL и сопоставить его с новым.Вот структура URL:

Старый сайт

/ наши продукты / аксессуары / valerie-objects-alfred-collection-lucy-rug

/ название магазина / новейшие дополнения-магазин-интернет-магазин / valerie-objects-alfred-collection-lucy-rug

/ название магазина / современный дизайн-аксессуары-подарки / valerie-objects-alfred-collection-lucy-rug

Новый сайт

/ valerie-objects-lucy-rug

Вот моя попытка использовать шаблон регулярного выражения, который не являетсяработает:

RedirectMatch 301 ^/our-products\/([-_!~*'()$a-zA-Z0-9]+)\/([-_!~*'()$a-zA-Z0-9]+)?$ /([-_!~*'()$a-zA-Z0-9]+)/$1

Что выводится на URL https://sitename/our-products/sofas/about-a-lounge-sofa с этим ниже:

/([-_!~*'()$a-zA-Z0-9]+)/sofas

В выше мы должны быть в состоянии забратьстарые URL-адреса и удалите сегменты, оставляя заголовок и способ сопоставить его с продуктом на сайте.

Возможно ли это, и что мы будем искать для шаблона регулярных выражений?

1 Ответ

0 голосов
/ 21 мая 2018

Это правило перенаправления должно работать для вас:

RedirectMatch 301 ^/(?:our-products|shop-name)/.+/(\w+-\w+-)(?:.*-)?(\w+-\w+)$ /$1$2

Убедитесь, что вы используете новый браузер для проверки этого изменения.

...