如何编写正则匹配特定域名子路由并排除指定路径(JS/Optimizely)
JavaScript正则表达式解决方案(适配Optimizely页面定向)
直接给出满足需求的正则表达式:
^https?://www\.mydomain\.com/(?!baz/|foo/bar/)(.*)$
规则拆解
^https?://:匹配HTTP或HTTPS协议开头www\.mydomain\.com/:精确匹配目标域名(点号需转义避免匹配任意字符)(?!baz/|foo/bar/):负向前瞻核心逻辑,确保路径开头既不是/baz/也不是/foo/bar/,完美实现允许/foo/但排除其下bar子路由的要求(.*):匹配后续任意路径内容(包括空值,即网站根路径)
匹配/不匹配示例
会被匹配的路径
www.mydomain.com/www.mydomain.com/foo/www.mydomain.com/foo/test-pagewww.mydomain.com/any-other-path
不会被匹配的路径
www.mydomain.com/baz/www.mydomain.com/baz/sub-pagewww.mydomain.com/foo/bar/www.mydomain.com/foo/bar/detail
如果Optimizely已预先限定域名范围,可简化为仅匹配路径的正则:
^(?!baz/|foo/bar/)(.*)$
内容的提问来源于stack exchange,提问作者FDMatthias
相关产品推荐
相关产品推荐

