我有一个分类广告网站使用专有脚本,现在我把它移动到Wordpress。 我想将旧urlredirect到Wordpressurl。
该脚本有两个主要的URLtypes:
类别url:
/category/id-of-category[/page-number]/category-name.html
例如。:
/category/15/cars.html
/category/15/3/cars.html(3是分页)
它应该redirect到/?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
它应该redirect到/?p = 12345
我想知道确切的nginxconfiguration,将永久redirect到相同的域名上的新的URL。
你在做什么页码?
无论如何,假设页面编号和页码可以由范围[0-9]
中的至less一个字符表示,并且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正则expression式有点特别,但function非常强大(例如,将字母数字范围加上减号,而不需要像grep那样重写整个范围[-_a-zA-Z0-9]
)。
更新 :修复第二个地点catpure组。