【发布时间】:2019-10-21 14:08:45
【问题描述】:
我有几个容器使用 traefik 和 docker-compose 在同一页面 (some.website.com) 中运行,我正在尝试制定一个规则,将每个请求与来自某个子域的引用者转发到相同的子域如果重定向上没有子域。
即:some.website.com/dolibarr/ 我尝试登录,但它发送给我:some.website.com/answer.php?whatever
我已经用 traefik 规则解决了这个问题,所以它会将我发送到: some.website.com/dolibarr/answer.php?whatever 但是还有其他几个子页面会将我发送到 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/dolibarr/]
【问题讨论】:
标签: docker-compose rules traefik