Правила маршрутизации на поддоменах (с использованием цепочек) Сломались после обновления до Zend Framework 1.9.5, но только для корня, а не для страниц - PullRequest
1 голос
/ 11 ноября 2009

Я задал похожий вопрос месяца назад о том, как написать правила сцепления в формате app.ini. Ответ на этот вопрос сработал чудесно! Однако теперь я обновил до последней версии Zend Framework 1.9.5 (мне нужно было обновить для другой проблемы), и теперь мои субдомены больше не работают!

Чтобы уточнить, если я посещаю subdomain.domain.com, он не признает мое правило. Однако, если я посещаю subdomain.domain.com/somepage/, он распознает мое правило маршрутизации.

Вот мой код:

;; the following is apparently being ignored, and does not work
routes.manager.type = "Zend_Controller_Router_Route_Hostname"
routes.manager.route = "manager.sitename.com"
routes.manager.defaults.module = "manager"

;; this is not being ignored and works!
routes.manager.chains.settings.type = "Zend_Controller_Router_Route_Static"
routes.manager.chains.settings.route = "/settings"
routes.manager.chains.settings.defaults.controller = "manager"
routes.manager.chains.settings.defaults.action  = "settings"

Так, например, если я перехожу к manager.sitename.com, он просто перенаправляет на мой индекс по умолчанию и контроллер (не обращается к модулю, $this->getRequest()->getModuleName() пусто). Однако, если я перейду к manager.sitename.com/settings, страница откроется! Эта конфигурация app.ini отлично работает в ZF 1.7.8, но теперь, когда я обновился до 1.9.5, она больше не работает.

Я также пытался добавить routes.manager.defaults.controller = "manager" и routes.manager.defaults.action = 'index" в мою конфигурацию, но это не сработало.

В интернете мало что можно сказать о цепочках и app.ini о Zend Framework. Любая помощь по этому вопросу будет принята с благодарностью.

1 Ответ

1 голос
/ 14 марта 2010

Я нашел решение. Во-первых, проблема связана с ошибкой в ​​правилах маршрутизации Zend Framework, из-за которой пустой статический маршрут (пустая строка) никогда не совпадает. Вот почему sub.example.com/hello.php будет работать, но не sub.example.com.

Для этого есть патч, и он отлично работает.

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

...