0

私の app/modules/ には、Application、Album、Shop という名前の 3 つのモジュールがあります。HOSTANME/application、HOSTNAME/album、および HOSTNAME/shop を使用して、これらの各モジュールにアクセスしたいと考えています。アプリケーション モジュールの場合、構成は次のとおりです。

 'router' => array(
    'routes' => array(
        'application' => array(
            'type'    => 'Literal',
            'options' => array(
                'route'    => '/application',
                'defaults' => array(
                    '__NAMESPACE__' => 'AppliWcation\Controller',
                    'controller'    => 'Index',
                    'action'        => 'index',
                ),
            ),
            'may_terminate' => true,
            'child_routes' => array(
                'default' => array(
                    'type'    => 'Segment',
                    'options' => array(
                        'route'    => '/[:controller[/:action]]',
                        'constraints' => array(
                            'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                        ),
                        'defaults' => array(
                        ),
                    ),
                ),
            ),
        ),
    ),
),


'controllers' => array(
    'invokables' => array(
        'Application\Controller\Index' => 'Application\Controller\IndexController', 
        .........
    ),
 },...

Application モジュールの下に複数の Controller があります。この方法で、次のような URL にアクセスできます。 http://www.myhostname.com/application/controllerName/actionName 他の 2 つのモジュールも同様の構成です。

これは、先月の初めに以前の T61 thinkpad で動作します。次に、新しく購入した T410 に Php/apache を再インストールしました。また、最新の ZF2 バージョンを git pull します。

git log

commit 73e0de644789aa5b712c97f55c512c57c2b9ac76
Merge: 7c65991 d722da5
Author: Matthew Weier O'Phinney <matthew@zend.com>
Date:   Fri Oct 4 11:01:06 2013 -0500

Merge branch 'hotfix/version-composer'

Fix for issue introduced with #5191

しかし、すべてがうまくいきません。error.log を確認しました:

[2013 年 10 月 6 日 10:47:05] [エラー] [クライアント 127.0.0.1] ファイルが存在しません: /path/to/app../ChipShop/public/application

ただし、デフォルト ルート http://www.myhostname.comでは機能します。

設定に問題があるのでしょうか、それとも設定ルールが変更されたのでしょうか? ありがとう

[アップデート]

同様のポストZF2ルーティング構成があり、方法を試しました:

'user' => array(
     'type' => 'Zend\Mvc\Router\Http\Literal',
     'options' => array(
          'route'    => '/user',
          'defaults' => array(
                'controller' => 'Application\Controller\User',
                'action'     => 'some-action',
            ),
      ),
) ,

しかし、それはまだ私にとってはうまくいきません..

解決
問題はコード側ではありません。それは私の構成にあります。1、Apache書き換えモジュールを有効にするのを忘れていました。akond の投稿で述べたように。2, virtualHost構成で、

AllowOverride なし

に変更する必要があります

AllowOverride すべて
4

1 に答える 1

0

https://github.com/zendframework/zf2には、マスター ブランチに 2.2.5dev が含まれていることが明確に示されています。Dev リリースは不安定になる可能性があるため、依存するべきではありません。Composer を使用する

"require": {
    "zendframework/zendframework": "~2.2.0"
}

そして、あなたは元気になります。


アップデート

アプリケーション ディレクトリが見つからないというエラー メッセージが表示されます。もちろん、仮想なので存在しません。これは、問題が ZF ルートにまったくないことを意味します。それを確認します

  • .htaccessファイルはpublicディレクトリに存在し、正しい内容です
  • .htaccessApache はこのファイルを解析するように構成されています
  • mod_rewriteモジュールがオンになっています。
  • あなたのディレクトリまでのpublicディレクトリは存在します
  • 仮想ホストはこのディレクトリに接続されます。
于 2013-10-06T14:36:44.090 に答える