Добавление маршрутов на основе субдоменов в рамках Zend

Я новичок в Zend framework, я использую файл .ini для добавления маршрутов в свое приложение.

У меня есть 2 маршрута для разных модулей, которые

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"

шаблон url похож на

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

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

проблема, с которой я сталкиваюсь, - это последний определенный маршрут, назначенный для обоих модулей.

может ли кто-нибудь предложить решение для этого.

Ответ 1

Привет после многократного просмотра в Интернете Я придумал это решение для своей проблемы

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"

Приведенный выше код отображает модуль с поддоменой

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

Это решает проблему, с которой я столкнулся, и теперь может правильно отобразить следующие URL-адреса.

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

Тем не менее, если кто-то знает, как оптимизировать вышеуказанный код, пожалуйста, дайте мне знать.

Ответ 2

Вызов обоих субдоменов в один и тот же index.php?

Если они не только устанавливают маршрут на основе соответствующего поддомена вместо того, чтобы устанавливать оба маршрута в обоих поддоменах.

Если они либо читают из переменной $_SERVER ['HTTP_HOST'] и устанавливают правильный маршрут на основе субдомена, либо задают переменную среды в вашем файле .htaccess, чтобы вы могли указать, в каком субдомене вы находитесь.