Regex如何匹配不包含固定字符串的子字符串。 Traefik中的正则表达式

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

[我有几个容器在同一页面(some.website.com)中运行,带有traefik和docker-compose,我试图制定一条规则,仅在以下情况下将带有引荐来源网址的每个请求从某个子域转发到同一子域:重定向上没有子域。

即:some.website.com/dolibarr/我尝试登录,但它将我发送到:some.website.com/answer.php?无论如何

我已经使用traefik规则解决了此问题,因此将其发送至:some.website.com/dolibarr/answer.php?无论如何但是还有其他几个子页面将我发送到some.website.com/,因此我必须为每个子页面制定一条规则。

我已经拥有的traefik规则

labels:
      - "traefik.enable=true"
      - "traefik.backend=dolibarr"
      - "traefik.dolibarr.frontend.rule=Host:${SUBDOMAIN}.${DOMAIN_NAME}.${DOMAIN_TLD};PathPrefixStrip:/${DOLIBARR_PATH}"
      - "traefik.dolibarr_url_fix.frontend.rule=Host:${SUBDOMAIN}.${DOMAIN_NAME}.${DOMAIN_TLD};PathPrefix: /admin, /user, /expensereport, /index.php;HeadersRegexp: referer, ^https://${SUBDOMAIN}.${DOMAIN_NAME}.${DOMAIN_TLD}/${DOLIBARR_PATH}/"
      - "traefik.dolibarr_url_fix.frontend.redirect.permanent=true"
      - "traefik.dolibarr_url_fix.frontend.redirect.regex=https://${SUBDOMAIN}.${DOMAIN_NAME}.${DOMAIN_TLD}/dolibarr/(.*)"
      - "traefik.dolibarr_url_fix.frontend.redirect.replacement=https://${SUBDOMAIN}.${DOMAIN_NAME}.${DOMAIN_TLD}/${DOLIBARR_PATH}/$$1"


正则表达式应该类似于^((?! dolibarr)。)* $,但我无法使其与traefik规则一起使用

我正在尝试按照我在开始时解释的规则进行操作,因此,只有当引荐来源来自some.website.com/dolibarr/(.*)和重定向时,它才会将我发送到some.website.com/dolibarr/与some.website.com/dolibarr/不兼容[为了避免获得some.website.com/dolibarr/dolibarr /]

docker-compose rules traefik
1个回答
0
投票

您正在尝试做的是negative lookahead

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