Cuando desplegamos sin mas los archivos de instalacion de opencms, el fichero war de la instalacion es opencms.war, cuando desplegamos tal cual, la aplicacion se nos instala en un contexto "opencms" de esta forma directamente por tomcat accederiamos a la aplicacion haciendo http://miservidor:8080/opencms/opencms/system/login
Por otro lado si creamos un site, lo logico es que quedamos que corresponda a un dominio por el puerto 80, por ejemplo:
http://midominio.com
Además, querremos tambien que nuestras url no incluyen /opencms/opencms/
Para hacer esto, podemos usar un frontal apache que conecte con tomcat mediante el puerto AJP como se explica en la documentacion oficial: Apache proxy configuration (opencms.org)
El problema es que esta configuracion solo funciona si tenemos opencms instalado como ROOT en nuestro servidor de aplicaciones.
La forma de eliminar el segundo /opencms/ del path: /opencms/opencms/ es relativamente sencilla, os adjunto la configuración.
Es importante que contexto y aplicacion tengan distinto nombre, si no las reescrituras serían bastante complejas. En nuestro ejemplo el despliegue estaría en:
/var/lib/tomcat9/webapps/opencmsctx nuestro contexto sería opencmsctx y la aplicacion opencms.
Queremos eliminar /opencmsctx/opencms/ de nuestros paths:
Asi quedaria el VirtualHost:
Efectivamente en el punto en el que estamos opencmsctx sigue apareciendo en las rutas que genera opencms, de modo que cuando navegamos nos encontramos con errores 404 por todos lados.
Para solucionar eso hay que modificar el fichero de configuracion opencms-importexport.xml localizar esta entrada:
<rendersettings>
<rfs-prefix>${CONTEXT_NAME}/export</rfs-prefix>
<vfs-prefix>${CONTEXT_NAME}</vfs-prefix>
y sustituirla por esto:
<rendersettings>
<rfs-prefix>export</rfs-prefix>
<vfs-prefix></vfs-prefix>
Así modificamos la forma en la que opencms generará las rutas online y no incluirá el contexto.
Espero que os ayude.