eZ Publish - Un blog

Gestionar varios dominios desde un solo administrador

Sábado, 17 de Abril de 2010 - Carlos Revillo

Una de las posibilidades de eZ Publish es la posibilidad de gestionar dos o más sitios webs desde una única instalación del producto. El proceso de configuración es realmente sencillo y solo se requiren unas pequeñas modificaciones en las configuración de la aplicación y en el VirtualHost que hayas definido para tu servidor web.

En este caso, queremos que un único eZ Publish nos sirva para gestionar los dominios dominio1.com y dominio2.com, cuyos contenidos y diseño podrán parecer o ser totalmente distintos. Si estás en una situación parecida, estos son los pasos que puedes seguir.

Crea la estructura de contenido de cada dominio.

Puedes empezar por crear una carpeta para cada uno de los dominios implicados. bajo ellas crearías los contenidos de cada dominios. Debería quedarte algo similar a la siguiente imagen.

img1

Configura el servidor web

La única modificación adicional a la configuración del VirtualHost, es asegurarse de que tenemos un ServerAlias por cada dominio implicado. Así, si hemos elegido que el ServerName sea dominio1.com, bastará con añadir un ServerAlias para el dominio2.com. En nuestro caso trabajamos con Apache.

ServerName www.dominio1.com
ServerAlias www.dominio2.com

Configura eZ Publish para servir varios dominios.

Cada vez que el sistema recibe una petición, una serie de reglas determinan que siteaccess debe ser usado para servirla. Hay tres métodos de acceso, y en función del escogido las peticiones se procesarán de una forma u otra.
Generalmente, el método de acceso usado por defecto es el URI. Un caso típico de uso es tener un sitio multidioma de tal forma que cada siteaccess responda a las peticiones que llegasen desde www.dominio1.com/es, www.dominio1.com/en, www.dominio1.com/fr, etc.
Pero en nuestro caso necesitamos usar el segundo de los métodos, Host. Por tanto, debemos modificar nuestro settings/override/site.ini.append.php.

MatchOrder=host

Mapea los dominios a sus siteaccess.

Es lógico pensar que los dominios tengan diseño y contenido totalmente diferente. Por tanto, lo normal es asignar a cada dominio un siteaccess. De esta forma podremos personalizar su diseño y también controlar quien tendrá acceso a gestionar el contenido de ese site. Usaremos la variable HostMatchMapItems y nos quedará algo tal que así

HostMatchMapItems[]=www.dominio1.com;dominio1
HostMatchMapItems[]=www.dominio2.com;dominio2

De esta forma le estamos diciendo que todas las peticiones a www.dominio1.com serán procesadas según la configuración definida en el siteaccess dominio1 y todas las que llegan a www.dominio2.com lo serán según lo definido en dominio2.

Configura los siteaccess

El proceso no termina aquí. En este momento, si nosotros fuésemos a www.dominio1.com o www.dominio2.com nos saldrá el contenido de la carpeta "Nuestras webs" en ambos casos. Por ello, tenemos que decirle a eZ Publish que cuando se teclee cualquiera de los dos dominios, la página a devolver sea otra. Resolveremos esto haciendo uso de las variables IndexPage y DefaultPage. Empezando por el dominio1, añadiremos en el site.ini.append.php y dentro del grupo SiteSettings:

IndexPage=content/view/full/60
DefaultPage=content/view/full/60

y para el dominio2

IndexPage=content/view/full/61
DefaultPage=content/view/full/61

Los números 60 y 61 son los números de nodo de nuestras carpetas dominio1.com y dominio2.com

Además, debes modificar también o crear si no estaban antes, los archivos content.ini.append.php de ambos siteaccess, para decirle al sistema cual es el nuevo 'RootNode' para cada dominio.

[NodeSettings]
RootNode=60

en el primer caso y

[NodeSettings]
RootNode=61

en el segundo.

No te olvides de la variable PathPrefix

Si navegas ahora por tu www.dominio1.com notarás que las urls no están todo lo finas que debieran. cualquier enlace que fuese a nuestra página de noticias, a las noticias o a los productos serían de la forma www.dominio1.com/dominio1.com/noticias o www.dominio2.com/dominio2.com/productos, en el caso del dominio2. No es lo más óptimo y lo lógico sería devolver direcciones del tipo www.dominio1.com/noticias o www.dominio2.com/noticias. Para solucionarlo podemos hacer uso de la variable PathPrefix, que le servirá al operador ezurl para suprimir una cadena de caracteres de las urls sin que por ello éstas dejen de funcionar.

Por tanto, añadiríamos dentro del grupo SiteAccessSettings del site.ini.append.php del siteaccess dominio1

PathPrefix=dominio1.com

y

PathPrefix=dominio2.com

No hay ningún comentario

Deja un comentario:

  • CAPTCHA Image