私の 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 Error
URL にブラケット (例: 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による「サポートされている一般的なカテゴリ プロパティ コードのリスト」も参照してください)