いくつかの異なるサブドメインから実行する Zend Framework 2 でアプリケーションを作成しています。物事を整理するために、サブドメインごとに異なるモジュールを用意したいと考えています。
私の問題は、ルーティングに複数のサブドメインを追加すると、サブドメインの 1 つが失われることです。
例: このセットアップは testbed.localhost (モジュール/アプリケーション) a.testbed.localhost (モジュール/A) で動作します
追加のものを追加すると、すべてのリクエストが Application Index Controller にルーティングされます
例 testbed.localhost (モジュール/アプリケーション)、a.testbed.localhost (モジュール/A)、b.testbed.localhost (モジュール/B)
これは、module/A の module.config.php です。
'router' => array(
'routes' => array(
'ads' => array(
'type' => 'Hostname',
'options' => array(
'route' => 'a.testbed.localhost',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'__NAMESPACE__' => 'A\Controller',
'controller' => 'A\Controller\A',
'action' => 'index',
),
),
そして、これはmodule/Bのmodule.config.phpのルートです
'router' => array(
'routes' => array(
'ads' => array(
'type' => 'Hostname',
'options' => array(
'route' => 'b.testbed.localhost',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'__NAMESPACE__' => 'B\Controller',
'controller' => 'B\Controller\B',
'action' => 'index',
),
),
これで、両方の module.config.php ファイルで名前空間が正しくなりました。気づいたのは、config/application.config.php からサブドメインへの参照を削除すると、サブドメイン a.testbed.localhost が機能することです。
<?php
return array(
'modules' => array(
'Application',
'A',
'B', <--- A doesn't work if B is here
),
上記のモジュール配列で A と B を交換すると、B がアプリケーション モジュールに転送され、A が機能します。そのため、複数のサブドメインに問題があるようです。誰かがアイデアを持っていますか/同じことに出くわしましたか?