Hace poco tuve que hacer un proyecto donde cada subdominio representaba un módulo de Zend, realmente fue una tarea muy sencilla de hacer y aquí les dejo como pueden hacerlo en modo local para que luego lo puedan migrar a su servidor.
Lo primero es configurar en su archivo hosts los subdominios que quieran redirigir a su local:
Código:
127.0.0.1 default.domain.com
127.0.0.1 admin.domain.com
127.0.0.1 user.domain.com
Después en su Apache configuran 3 virtualhosts para esos subdominios y que apunten a la misma carpeta public de su aplicación en Zend.
Después es donde viene lo más sencillo de todo, hay que cambiar el router por defecto a uno que soporte los subdominios, y eso se hace en el bootstrap de una forma sencilla:
Código PHP:
Ver originalprotected function _initRoutes()
{
$this->bootstrap('frontController');
$front = $this->getResource('frontController');
$router = $front->getRouter();
// Importante quitar la ruta default para usar la nuestra
$router->removeDefaultRoutes();
// con esto hacemos el "match" al subdominio
$hostNameRoute = new Zend_Controller_Router_Route_Hostname(
':module.domain.com',
'module' => 'default'
)
);
// con esta hacemos match de las urls normales
$normalRoute = new Zend_Controller_Router_Route(
':controller/:action/*',
'controller' => 'index',
'action' => 'index'
)
);
// la registramos como default en el router
$router->addRoute('default', $hostNameRoute->chain($normalRoute));
}
Con esto todos nuestros links y demás funcionan normal y se sobreescriben correctamente al subdominio adecuado.
Espero les ayude por sí alguna vez necesitan hacer subdominios y usar Zend Framework.
Saludos.