今日、私はZend-Frameworkのバグと思われる問題に遭遇しました。次のルートが与えられます:
<test>
<route>citytest/:city</route>
<defaults>
<controller>result</controller>
<action>test</action>
</defaults>
<reqs>
<city>.+</city>
</reqs>
</test>
および3つのURL:
- mysite.local / citytest / Berlin
- mysite.local / citytest / Hamburg
- mysite.local / citytest / M%FCnchen
最後のURLが一致しないため、正しいコントローラーが呼び出されません。誰かがなぜ手がかりを得たのですか?
Fyi、Zend-Framework 1.0を使用しています(ええ、私はそれが古代であることを知っていますが、私はそれを変更する責任がありません:-/)
編集:私が聞いたところによると、まもなくZend 1.5.6にアップグレードする予定ですが、いつかはわかりません。パッチがあれば素晴らしいと思います。
編集:私はそれを次の行(Zend / Controller / Router / Route.php:170)まで追跡しました:
$regex = $this->_regexDelimiter . '^' .
$part['regex'] . '$' .
$this->_regexDelimiter . 'iu';
これをに変更すると
$this->_regexDelimiter . 'i';
できます。私が理解していることから、u-modifierはアジアのキャラクターを操作するためのものです。私はそれらを使用しないので、私は知っているそのパッチで大丈夫です。読んでくれてありがとう。