Для тех, кто интересуется, почему Zend_Controller_Router_Route_Regex
соответствует разным маршрутам, например.hxxp: //example.com/EN против hxxp: //example.com/en, вот объяснение.
Zend_Controller_Router_Route_Regex
неявно не учитывает регистр.Это устанавливается в методе Zend_Controller_Router_Route_Regex::match()
.Это фрагмент кода, который устанавливает модификатор PCRE_CASELESS
:
if (!$partial) {
$path = trim(urldecode($path), '/');
$regex = '#^' . $this->_regex . '$#i';
} else {
$regex = '#^' . $this->_regex . '#i';
}
Я не знаю, есть ли способ подавить это поведение внутри регулярного выражения.Есть идеи?