Zend_Controller_Router_Route_Regex不区分大小写

时间:2010-06-04 09:19:04

标签: zend-framework routes case-insensitive

对于那些想知道为什么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';
}

我不知道是否有任何方法可以从正则表达式中抑制此行为。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以扩展Zend_Controller_Router_Route_Regex并只编写一个不同的match方法,唯一的区别在于正则表达式减去i标记。