对于那些想知道为什么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';
}
我不知道是否有任何方法可以从正则表达式中抑制此行为。有什么想法吗?
答案 0 :(得分:1)
您可以扩展Zend_Controller_Router_Route_Regex
并只编写一个不同的match
方法,唯一的区别在于正则表达式减去i
标记。