OpenShift - 如何将$ url / $路径重定向到$ url

时间:2018-04-09 20:02:18

标签: url redirect configuration openshift

我问一个问题,当你知道怎么做时可能很容易,但是经过多次尝试后我仍然无法管理。

我可以通过以下网址访问JavaEE网站:http://siteperso-valentin.1d35.starter-us-east-1.openshiftapps.com/sitePerso/

但我希望在没有sitePerso的情况下直接在http://siteperso-valentin.1d35.starter-us-east-1.openshiftapps.com/访问它。

为此,在我的Openshift账户中,我有一条如下路线:

apiVersion: route.openshift.io/v1
kind: Route
metadata:
  annotations:
    openshift.io/host.generated: 'true'
  creationTimestamp: '2018-02-18T14:00:04Z'
  labels:
    app: siteperso
  name: siteperso
  namespace: valentin
  resourceVersion: '2416325777'
  selfLink: /apis/route.openshift.io/v1/namespaces/valentin/routes/siteperso
  uid: ********
spec:
  host: siteperso-valentin.1d35.starter-us-east-1.openshiftapps.com
  path: /sitePerso/
  port:
    targetPort: 8080-tcp
  to:
    kind: Service
    name: siteperso
    weight: 100
  wildcardPolicy: None
status:
  ingress:
    - conditions:
        - lastTransitionTime: '2018-02-18T14:00:04Z'
          status: 'True'
          type: Admitted
      host: siteperso-valentin.1d35.starter-us-east-1.openshiftapps.com
      routerCanonicalHostname: elb.1d35.starter-us-east-1.openshiftapps.com
      routerName: router
      wildcardPolicy: None

我认为我需要另一条路线以某种方式使sitePerso“隐身”,但我无法做到。

先谢谢你的帮助,

2 个答案:

答案 0 :(得分:2)

Route无法在网址通过时操纵网址。 path设置仅指示该子路径的URL是否应该与该路由匹配并通过,它不会更改URL。

如果您不能只更改应用程序以在站点的根目录而不是子URL上安装应用程序,那么您将不得不在OpenShift内部部署您自己的代理,这可以执行URL为你重写。

答案 1 :(得分:2)

如果您正在使用其中一个OpenShift JWS / Tomcat构建器映像,并且您希望您的应用/站点在根上下文中可用,请确保使用ROOT.war名称对于要部署的war文件。

在相应的上下文中部署了其他名称,如果<route_url>/sitePerso用于二进制部署,则为sitePerso.war

所以基本上,将战争的名称改为ROOT.war可以解决问题。