繁体   English   中英

如何从一个URL匹配2个查询字符串以用于Wordpress重定向插件

[英]How to match 2 query strings from one URL for Wordpress Redirection Plugin

我想使用WordPress的“重定向”插件将搜索URL重定向到更干净的URL。

重定向插件的源URL接受正则表达式。

我需要的一个例子:

我需要以下搜索URL:

http://www.danceclass.es/?s=&where=Sydney+%28Australia%29&company_category=pole&cat=pole&search_simple=STEP+3+-+Show+details

重定向到:

http://www.danceclass.es/pole-sydney

但仅在where=Sydney AND cat=pole

正则表达式专家可以帮我将此示例转换为正则表达式代码吗?

我将冲洗并重复不同的where= AND cat=

由于您需要提取这2个查询参数的值,因此需要2个捕获组。 不过正则表达式也需要处理不同的查询参数顺序即catwhere顺序可以不同

这是正则表达式
https://regex101.com/r/gP9pZ0/1

您可以使用捕获的组来形成新的url,例如使用sed命令的示例:

$sed -r 's@^.*where=([a-zA-Z]*).*cat=([^&]*).*|.*cat=([^&]*).*where=([a-zA-Z]*).*$@http://www\.danceclass\.es/\2\3-\1\4@'
http://www.danceclass.es/?s=&where=Sydney+%28Australia%29&company_category=pole&cat=pole&search_simple=STEP+3+-+Show+details
http://www.danceclass.es/pole-Sydney
http://www.danceclass.es/?s=&company_category=pole&cat=pole&search_simple=STEP+3+-+Show+details&where=Sydney+%28Australia%29
http://www.danceclass.es/pole-Sydney
$

一旦您确定了最终URL,就可以将字符串变为小写形式以满足您的答案。 给sed的2个输入具有不同的顺序,即第一个URL的where cat ,第二个URL的顺序相反

无需迭代不同的值,您可以按照正则表达式中提到的有效字符进行匹配,即:

cat=[^&] cat值会给您每个字符,直到找不到&
where=[a-zA-Z]如果值是大写/小写字符,则其中的值将为您提供每个字符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM