Zend_Controller_Router_Route_Hostname Zend_Controller_Router_Route_Hostname является маршрутом, основанным на имени хоста. Он работает аналогично стандартному маршруту, но использует имя хоста в URL вместо пути. Возьмем пример из описания стандартного маршрута и посмотрим, как это будет выглядеть при использовании имени хоста. Вместо того, чтобы указывать пользователя через путь, нам требуется, чтобы можно было набрать URL вида http://martel.users.example.com для того, чтобы увидеть информацию о пользователе "martel": 'profile', 'action' => 'userinfo' ) ); $plainPathRoute = new Zend_Controller_Router_Route_Static(''); $router->addRoute('user', $hostnameRoute->chain($plainPathRoute); ]]> Первым параметром в конструкторе Zend_Controller_Router_Route_Hostname является определение маршрута, которое будет сопоставляться с именем хоста. Определения маршрутов содержат статические и динамические части, разделенные точкой ('.'). Динамические части, называемые переменными, помечаются знаком двоеточия: :username. Статические части являются обычным текстом: user. Технически маршруты по имени хоста могут использоваться сами по себе, но этого никогда не следует делать по той причине, что отдельно такой маршрут может соответствовать любому пути. Поэтому нужно объединять маршруты по имени хоста с маршрутами по пути. Это можно делать так, как показано в примере выше - путем вызова $hostnameRoute->chain($pathRoute);. При этом $hostnameRoute не изменяется, но будет возвращен новый маршрут (Zend_Controller_Router_Route_Chain), который может быть передан маршрутизатору. Приоритет параметров При объединении маршрутоа по имени хоста и маршрута по пути параметры маршрута по имени хоста имеют больший приоритет. Таким образом, если вы определили контроллер одновременно в маршрутах обоих типов, то будет выбран контроллер из маршрута по имени хоста. Указание маршрутов по имени хоста через <code>Zend_Config</code> Для объединения маршрутов по имени хоста и по пути есть дополнительный параметр для конфигурации - chains. Это просто список маршрутов, который будет объединен с родительским маршрутом. Ни родительский, ни дочерний маршруты не будут добавлены в маршрутизатор напрямую, в него будет добавлен только составленный из них маршрут. Имя объединенного маршрута в маршрутизаторе будет состоять из имени родительского маршрута и имени дочернего маршрута, объединенных с использованием тире (-). Простая конфигугация в формате XML может выглядеть следующим образом: www.example.com imprint users.example.com :username misc ]]> Результатом будет три маршрута: www-index, www-imprint и users-profile, которые будут соответствовать только именам хоста, подходящим под заданные определения, и маршрут misc, который будет соответствовать любым именам хоста.