Nginx + WordPress:移动到WordPress后redirectURL

我有一个分类广告网站使用专有脚本,现在我把它移动到Wordpress。 我想将旧urlredirect到Wordpressurl。
该脚本有两个主要的URLtypes:

  1. 类别url:
    /category/id-of-category[/page-number]/category-name.html
    例如。:
    /category/15/cars.html
    /category/15/3/cars.html(3是分页)
    它应该redirect到/?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
    它应该redirect到/?p = 12345

我想知道确切的nginxconfiguration,将永久redirect到相同的域名上的新的URL。

你在做什么页码?

无论如何,假设页面编号和页码可以由范围[0-9]中的至less一个字符表示,并且category-namead-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正则expression式有点特别,但function非常强大(例如,将字母数字范围加上减号,而不需要像grep那样重写整个范围[-_a-zA-Z0-9] )。

更新 :修复第二个地点catpure组。