在 openshift 的重定向循环中以路径结尾的重定向

redirect with path ends in redirect loop on openshift

我在 openshift 上的 express 应用程序中重定向到末尾带有 parth 的另一个域时遇到了一个奇怪的问题。

我有一个域,它是我的默认域和其他辅助域,所以我想将对辅助域的所有请求重定向到我的主域。

我有一个用 coffeescript 编写的非常简化的处理程序,我在其中重定向到 /admin 路径

app.get '/admin', (req, res) ->
  if not req.headers.host.match(/maindomain\.com/)
    return res.redirect('http://www.maindomain.com/admin')
  res.send('hello world!!!!')

这里发生的是我在重定向循环中结束,就像位置 header 永远不会改变并且它永远循环 有趣的是,如果我只是在没有路径的情况下重定向域,重定向工作正常。

所以从 secondarydomain.com 重定向 -> maindomain.com 工作正常 (?!)

我不明白为什么会这样。 当然,我认为这可能是由运行在我的应用程序前面的 openshift 和/或 haproxy 引起的,但我还无法弄清楚...

非常感谢任何帮助。

/mymaindomain\.com/.test('http://www.maindomain.com/admin')
>>> false

因此,当您重定向时,目标 url 触发条件并重定向...

也许你想要 /maindomain\.com/ ?

好的,这是 openshift 方面的问题。看起来他们的内部路由 'smartness' 是如何配置的,它不允许重定向到同一应用程序的另一个别名,并且它以循环结束。