Вы устанавливаете значения по умолчанию, поэтому для ровно одной страницы (страницы по умолчанию) запрос будет одинаковым. Если вы удалили значения по умолчанию, вы получите ошибку (404
, я полагаю), если URI не содержит переменную.
$route = new Zend_Controller_Router_Route(
':language/:city/:controller/:action/*',
array('language'=>'es', //default when not in URI
'city'=>'barcelona', //default when not in URI
'controller'=>'index', //default when not in URI
'action'=>'index' //default when not in URI
)
);
Возможно, вы захотите удалить значения по умолчанию для language
city
, поскольку без этих данных я не уверен, что собирается делать ваш контроллер.
Если вы сделали это, единственными «дублированными» URI будут:
/es/barcelona
/es/barcelona/index
/es/barcelona/index/index
Но вам нужно использовать только один из этих URI . Если вы выводите ссылки, используя Zend View_Helper_Url
, он пропустит index/index
, поскольку он соответствует значению по умолчанию.
Вы всегда можете добавить дополнительные маршруты для сопоставления других запросов (скажем, /
) с соответствующим контроллером.
Также следует отметить, если у вас есть только один контроллер, обрабатывающий все эти «городские» запросы, вам не нужно помещать его в URI :
$route = new Zend_Controller_Router_Route(
':language/:city/:action/*',
array('language'=>'es', //default when not in URI
'city'=>'barcelona', //default when not in URI
'controller'=>'index', //all requests route here
'action'=>'index' //default when not in URI
)
);
Тогда единственные «дубликаты» URI:
/es/barcelona
/es/barcelona/index