Zend Framework 2 アプリには、'nl' (デフォルト) と 'en' の 2 つの言語があります。「nl」のリクエスト URL は次のようになります。
/controller/action
そして「en」の場合:
/en/controller/action
まず、デフォルトの言語を次のようにルーティング/書き換えたい:
/nl/コントローラー/アクション
後で次のようなセグメント ルートを使用できるようにするため:
[:lang/[:controller/[:action]]]
以下の正規表現ルートでこれを試しました(否定的な先読みで)
'lang' => array(
'type' => 'Zend\Mvc\Router\Http\Regex',
'options' => array(
'regex' => '/(?!en)(.*)',
'spec' => '/nl$2',
),
),
(このルートはコントローラー/アクションにマップするべきではなく、URL を新しいものに書き換えるだけです)
しかし、私は得る:
Page not found.
The requested controller could not be mapped to an existing controller class.
正しく機能するルートとは? それとも、Web サーバーの書き換えを使用する方が良いですか?