なぜ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';
}
正規表現の内部からこの動作を抑制する方法があるかどうかはわかりません。何か案は?