2009-08-27 7 views
10

Je suis novice à Zend framework, j'utilise le fichier .ini pour ajouter des routes dans mon application.Ajout de routes sous-domaine dans Zend framework

I ont 2 voies pour les différents modules qui

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" 

le motif d'URL est comme

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

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

le problème que le visage est le dernier itinéraire défini est attribué pour les deux modules.

quelqu'un peut-il suggérer une solution pour cela.

Répondre

15

Salut après beaucoup de navigation sur le web, je suis venu avec cette solution pour mon problème

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" 

le code ci-dessus cartes du module avec le domaine sous

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 

Cela résout le problème que je fait face et maintenant pourrait mapper correctement les urls suivantes

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

encore si quelqu'un sait comment optimiser le code ci-dessus encore, S'il vous plaît laissez-moi savoir.

+0

Merci pour les informations détaillées. Exactement ce dont j'avais besoin. –

0

Est-ce que les deux sous-domaines appellent le même index.php?

Si elles ne définissent pas uniquement la route en fonction du sous-domaine approprié au lieu de définir les deux routes dans les deux sous-domaines.

S'ils le font soit lu à partir du $ _SERVER [ « HTTP_HOST »] variable et définir la bonne route en fonction de la sous-domaine ou définir une variable d'environnement dans votre fichier .htaccess afin que vous puissiez dire que vous êtes sous-domaine.

+1

Bonjour, J'ai ajouté une route distincte qui mappe le sous-domaine et les routes vers celui-ci. 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

Veuillez ajouter ceci comme réponse. – smack0007