使用正则表达式提取特定的URL部分并重写

问题描述 投票:0回答:1

我正在尝试重写一些url,并通过一个正则表达式通过路径名提取其参数值。网址可以有多个变体,并且s-term,pg-n,排序顺序等可以任意顺序排列。除了类别,网站网址之后总是第一个类别。

示例1: www.test.com/freebies/s-term/pg-2 /

  • 提取$ 1 =赠品,$ 2 =期限,$ 3 = 2
  • 因此,我可以重写为www.test.com?category=$1&s=$2&page=$3

示例2:www.test.com/freebies/pg-2 /

  • 提取$ 1 =赠品,$ 2 ='',$ 3 = 2

  • 那么我可以重写为www.test.com?category=$1&s=$2&page=$3

所有可能的组合

http://localhost:8888/pg-2/
http://localhost:8888/s-term/
http://localhost:8888/s-term/pg-2/
http://localhost:8888/s-term/pg-2/
http://localhost:8888/freebies/
http://localhost:8888/freebies/pg-2/
http://localhost:8888/freebies/s-term/
http://localhost:8888/freebies/s-term/pg-2/

无论哪种情况,我都希望在组1中获得类别,在组2中获得搜索字词,在组3中进行分页,在组4中进行排序]]


这是我到目前为止尝试过的,但是在替换区域中,每次找到匹配项时您都可以看到它替换了,我想用一个新的URL替换整个URL并包含组数据。

https://regex101.com/r/4v1uf5/10

您认为通过正则表达式或.htaccess重写是否可能是一个更好的计划?

谢谢!

我正在尝试重写一些url,并通过一个正则表达式通过路径名提取其参数值。网址可以有多种变体,并且s-term,pg-n,排序顺序等可以在任何...

regex .htaccess url-rewriting formula pcre
1个回答
0
投票

通过一个接一个地使用多个组来最终解出值:

© www.soinside.com 2019 - 2024. All rights reserved.