2

なぜ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';
}

正規表現の内部からこの動作を抑制する方法があるかどうかはわかりません。何か案は?

4

1 に答える 1

1

拡張Zend_Controller_Router_Route_Regexして別のmatchメソッドを作成することができます。唯一の違いは、正規表現パターンからiフラグを引いたものです。

于 2010-06-05T16:44:40.730 に答える