Nginx + Wordpress: URL Перенаправления после перемещения в Wordpress

У меня есть веб-сайт тематических объявлений с помощью собственного сценария, и теперь я перемещаю его в Wordpress. Я хочу перенаправить старые URL к URL Wordpress.
Сценарий имеет два основных типа URL:

  1. URL категории:
    /category/id-of-category [/page-number] /category-name.html
    например:
    /category/15/cars.html
    /category/15/3/cars.html (эти 3 для разбиения на страницы),
    это должно перенаправить к/? cat=15

  2. Список URL:
    /category/id-of-category/category-name/listings/id-of-ad/ad-title.html
    например:
    /category/15/cars/listings/12345/selling-my-old-toyota.html
    это должно перенаправить к/? p=12345

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

1
задан 24 September 2014 в 21:16
1 ответ

Что вы делаете с номером страницы?

В любом случае, предполагая, что id-of - * и номер страницы могут быть представлены хотя бы одним символом диапазона [0-9] и название-категории и заголовок объявления могут быть представлены как минимум одним символом диапазона [_- a-zA- Z0-9] :

location ~ ^/category/(\d+)/?\d*/[-\w]+\.html$ {
    return 301 $scheme://$server_name/?cat=$1;
}

location ~ ^/category/\d+/[-\w]+/listings/(\d+)/[-\w]+\.html$ {
    return 301 $scheme://$server_name/?p=$1;
}

Обратите внимание, что регулярные выражения nginx немного специфичны, но очень эффективны (например, добавить знак минус в буквенно-цифровой диапазон без необходимости перезаписывать весь диапазон [-_ a-zA-Z0- 9] подробно, как, например, с grep).

Обновление : исправлена ​​группа catpure второго местоположения.

0
ответ дан 4 December 2019 в 08:29

Теги

Похожие вопросы