У меня есть сайт тематических объявлений, использующий проприетарный скрипт, и теперь я перемещаю его на Wordpress. Я хочу перенаправить старые URL-адреса на URL-адреса Wordpress.
В скрипте есть два основных типа URL:
URL категории:
/category/id-of-category[/page-number ]/category-name.html
например.:
/category/15/cars.html
/category/15/3/cars.html (3 для разбивки на страницы)
он должен перенаправить на /? cat = 15
Листинг 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-адрес в том же доменном имени.
Что вы делаете с номером страницы?
Во всяком случае, если предположить id-of-*
и номер страницы может быть представлен как минимум одним символом диапазона [0-9]
и category-name
и ad-title
может быть представлен как минимум одним символом диапазона [_-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).
Обновить : исправлена вторая локация группы кошек.