2009-08-27 14 views
10

Soy un novato en Zend framework, estoy usando el archivo .ini para agregar rutas en mi aplicación.Adición de rutas basadas en subdominios en Zend framework

tengo 2 rutas para diferentes módulos que

resources.router.routes.news_view.type = "Zend_Controller_Router_Route_Regex" 
resources.router.routes.news_view.route = "([0-9\-]+)/([a-zA-Z0-9\-]+)\.html" 
resources.router.routes.news_view.defaults.module = "news" 
resources.router.routes.news_view.defaults.controller = "index" 
resources.router.routes.news_view.defaults.action = "view" 
resources.router.routes.news_view.map.1 = "date" 
resources.router.routes.news_view.map.2 = "title" 

resources.router.routes.edu_view.type = "Zend_Controller_Router_Route_Regex" 
resources.router.routes.edu_view.route = "([0-9\-]+)/([a-zA-Z0-9\-]+)\.html" 
resources.router.routes.edu_view.defaults.module = "education" 
resources.router.routes.edu_view.defaults.controller = "index" 
resources.router.routes.edu_view.defaults.action = "article" 
resources.router.routes.edu_view.map.1 = "date" 
resources.router.routes.edu_view.map.2 = "title" 

el patrón de URL es como

http://news.mysite.com/27-08-09/sample.html 

http://education.mysite.com/27-08-09/sample.html 

el problema que enfrentan es se le asigna la última ruta definida, tanto para los módulos.

alguien puede sugerir una solución para esto.

Respuesta

15

Hola después de mucha navegación en la web me encontré con esta solución para mi problema

resources.router.routes.www.type = "Zend_Controller_Router_Route_Hostname" 
resources.router.routes.www.route = ":module.findchennai.com" 
resources.router.routes.www.defaults.module = "www" 
resources.router.routes.www.chains.index.type = "Zend_Controller_Router_Route" 
resources.router.routes.www.chains.index.route = ":controller/:action/*" 
resources.router.routes.www.chains.index.defaults.controller = "index" 
resources.router.routes.www.chains.index.defaults.action = "index" 

el código anterior asigna el módulo con subdominio

resources.router.routes.news.type = "Zend_Controller_Router_Route_Hostname" 
resources.router.routes.news.route = "news.findchennai.com" 
resources.router.routes.news.defaults.module = "news" 

resources.router.routes.edu.type = "Zend_Controller_Router_Route_Hostname" 
resources.router.routes.edu.route = "education.findchennai.com" 
resources.router.routes.edu.defaults.module = "education" 

resources.router.routes.edu.chains.list.type = "Zend_Controller_Router_Route" 
resources.router.routes.edu.chains.list.route = ":categ/:page" 
resources.router.routes.edu.chains.list.defaults.controller = "index" 
resources.router.routes.edu.chains.list.defaults.action = "category" 
resources.router.routes.edu.chains.list.defaults.page = 1 

resources.router.routes.news.chains.list.type = "Zend_Controller_Router_Route" 
resources.router.routes.news.chains.list.route = ":categ/:page" 
resources.router.routes.news.chains.list.defaults.controller = "index" 
resources.router.routes.news.chains.list.defaults.action = "category" 
resources.router.routes.news.chains.list.defaults.page = 1 

Esto resuelve el problema que tuvimos y ahora podría asignar correctamente a las siguientes direcciones

http://news.mysite.com/27-08-09/sample.html 
http://education.mysite.com/27-08-09/sample.html 

Aún si alguien sabe cómo optimizar el código anterior aún más, por favor hágamelo saber.

+0

Gracias por la información en profundidad. Exactamente lo que necesitaba. –

0

¿Los dos subdominios llaman al mismo index.php?

Si no solo establecen la ruta en función del subdominio apropiado en lugar de establecer ambas rutas en ambos subdominios.

Si lo hacen, ya sea leído de la variable $ _SERVER [ 'HTTP_HOST'] y establecer la ruta correcta en función del subdominio o establecer una variable de entorno en el archivo .htaccess para que pueda decir qué subdominio que se encuentra.

+1

Hola, He agregado una ruta separada que mapea el dominio secundario y lo enruta. resources.router.routes.www.type = "Zend_Controller_Router_Route_Hostname" resources.router.routes.www.route = ": module.mysite.com" resources.router.routes.www.defaults.module = "www" resources.router.routes.www.chains.index.type = "Zend_Controller_Router_Route" resources.router.routes.www.chains.index.route = ": controller /: action/*" resources.router.routes.www. chains.index.defaults.controller = "index" resources.router.routes.www.chains.index.defaults.action = "index" – Nizam

+0

Por favor, agregue eso como respuesta. – smack0007