Lo primero es configurar en su archivo hosts los subdominios que quieran redirigir a su local:
Código:
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.127.0.0.1 default.domain.com 127.0.0.1 admin.domain.com 127.0.0.1 user.domain.com
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 original
protected 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.