首页 > 解决方案 > 主网站中子链接的 URL 正则表达式

问题描述

我想为要在 WAF 中列入白名单的 URL 创建一个正则表达式。

对于子 URL,例如:

http://www.example.com/wp-admin/admin-ajax.php?action=aks_expt

http://www.example.com/wp-admin/admin-ajax.php?action=aks_expt&aks_ex1m_expt=1

我想,我设法将正则表达式用于起始部分:

(https:\/\/www\.|http:\/\/www\.^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+$)

匹配到http://www.example.comhttps://www.example.com

但我不确定如何使用子链接:

/wp-admin/admin-ajax.php?action=aks_expt

/wp-admin/admin-ajax.php?action=aks_expt&aks_ex1m_expt=1

我还是建了一个,但失败了:

https:\/\/www\.|http:\/\/www\.^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+$\/wp-admin\/admin-ajax\.php\?action\=aks\_expt

标签: regexurl

解决方案


尝试以下正则表达式:

(?:https?://www\.example\.com)?/wp-admin/admin-ajax\.php\?action=aks_expt(?:&aks_ex1m_expt=1)?

演示

解释:

(?:https?:\/\/www\.example\.com)?           match optional leading http/https
                                            followed by domain
/wp-admin/admin-ajax\.php\?action=aks_expt  mandatory path
(?:&aks_ex1m_expt=1)?                       optional query parameter

推荐阅读