私の Zend Framework 2 アプリケーションには、スポーツ ページへのリンクを含む都市のカタログがあります。
ページ「都市」 ( /catalog)
マドリッドリンク:
website.tld/catalog/Madridベルリンのリンク:
website.tld/catalog/Berlinロンドンリンク:
website.tld/catalog/London
ページ「ロンドンのスポーツ」 ( /catalog/London)
フーリンク:
website.tld/catalog/London/Fooバー(バー)リンク:
website.tld/catalog/London/Bar (Bar)Baz - Bazリンク:
website.tld/catalog/London/Baz - Baz
URL はエスケープされており、私の仮想マシン (nginx) ではうまく機能します。ただし、(Apache)サーバーではありません。404 ErrorURL にブラケット (例: Bar (Bar)) またはハイフン (例: )が含まれていると、 が表示されますBaz - Baz。
修正方法は?
(ZF2の問題ではないと思いますが、確信が持てないので、この質問にもzend-framework2タグを付けています。)
編集:
バグを見つけました。それはApacheについてではなく、私自身の悪いことです。ZF2 モジュール構成でルートを間違って定義しました。
'regex' => '/catalog/(?<city>[\p{L}\p{Zs}]*)/(?<sport>[\p{L}\p{Zs}]*)'`
このようなものの代わりに
'regex' => '/catalog/(?<city>[\p{L}\p{Zs}]*)/(?<sport>[\p{L}\p{Zs}\p{P}]*)'`
( PCREによる「サポートされている一般的なカテゴリ プロパティ コードのリスト」も参照してください)