2009-08-27 8 views
10

Jestem początkującym do Zend Framework, używam pliku .ini, aby dodać trasy w mojej aplikacji.Dodawanie tras opartych na domenie w Zend Framework

mam 2 trasy dla poszczególnych modułów

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" 

wzór URL jest jak

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

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

Problem zmierzyć, jest ostatnio zdefiniowany trasa jest przypisany do obydwu modułów.

każdy może zaproponować rozwiązanie tego problemu.

Odpowiedz

15

Witam po wielu przeglądanie stron w internecie wpadłem na to rozwiązanie dla mojego problemu

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" 

powyższy kod odwzorowuje moduł z subdomeny

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 

To rozwiązuje problem wychodził i teraz mógł prawidłowo map do następujących adresów URL

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

Jeszcze jeśli ktoś wie, w jaki sposób zoptymalizować powyższy kod dalej, proszę dać mi znać.

+0

Dzięki za szczegółowe informacje. Dokładnie to, czego potrzebowałem. –

0

Czy obie subdomeny wywołują ten sam index.php?

Jeśli nie tylko ustawi trasę na podstawie odpowiedniej poddomeny zamiast ustawiać obie trasy w obu subdomenach.

Jeśli robią albo czytać ze zmiennej $ _SERVER [ „HTTP_HOST”] i ustawić właściwą drogę na podstawie subdomenie lub ustawić zmienną środowiskową w pliku .htaccess, więc można powiedzieć, który jesteś w subdomeny.

+1

Witam, Dodałem oddzielną trasę, która mapuje poddomeny i trasy do niej. 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

Dodaj to jako odpowiedź. – smack0007