我的 app/modules/ 中有三个模块,分别命名为 Application、Album、Shop。我想使用 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',
.........
),
},...
应用模块下有多个控制器。通过这种方法,我可以访问如下 URL: http://www.myhostname.com/application/controllerName/actionName 其他两个模块的配置类似。
这适用于上月初的 T61 thinkpad。然后我在我新买的 T410 中重新安装了 Php/apache。我也 git pull 最新的 ZF2 版本:
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:
[Sun Oct 06 10:47:05 2013] [error] [client 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',
),
),
) ,
但它仍然对我不起作用..
解决方案问题不在代码方面。这是在我的confiuration。1、我忘了启用apache rewrite模块。正如akond帖子中所说的那样。2、在virtualHost配置中,
AllowOverride 无
应该改为
允许覆盖所有