Php 迁移和升级ZF2后路由无法工作
我的应用程序/modules/中有三个模块,分别命名为Application、Album和Shop。我想使用HOSTANME/application、HOSTNAME/album和HOSTNAME/shop访问这些模块。对于应用程序模块,配置为:Php 迁移和升级ZF2后路由无法工作,php,apache,zend-framework2,url-routing,Php,Apache,Zend Framework2,Url Routing,我的应用程序/modules/中有三个模块,分别命名为Application、Album和Shop。我想使用HOSTANME/application、HOSTNAME/album和HOSTNAME/shop访问这些模块。对于应用程序模块,配置为: 'router' => array( 'routes' => array( 'application' => array( 'type' => 'Literal',
'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,如:
其他两个模块的配置类似
这适用于上个月初之前的T61 thinkpad。然后我在新买的T410中重新安装了Php/apache。我还提供了最新的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
但这对我来说仍然不起作用
解决方案
问题不在代码端。这是我的心愿。
1,我忘记启用apache重写模块。正如阿肯德邮报所说。
2,在虚拟主机的确认中
AllowOverride None
不允许超限
应改为
AllowOverride All
AllowOverride All明确指出主分支包含2.2.5dev。开发版本可能不稳定,您不应该依赖它们。将composer与
"require": {
"zendframework/zendframework": "~2.2.0"
}
你会没事的
更新 错误消息表示找不到应用程序目录。当然它不存在,因为它是虚拟的。这意味着问题根本不在ZF路线中。检查一下
文件存在于.htaccess
目录中,内容正确public
- Appache配置为解析此
文件.htaccess
模块已打开mod_rewrite
- 您的
目录的目录确实存在public
- 并且虚拟主机已附加到此目录
"require": {
"zendframework/zendframework": "~2.2.0"
}