Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 迁移和升级ZF2后路由无法工作_Php_Apache_Zend Framework2_Url Routing - Fatal编程技术网

Php 迁移和升级ZF2后路由无法工作

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',

我的应用程序/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,如: 其他两个模块的配置类似

这适用于上个月初之前的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
    目录的目录确实存在
  • 并且虚拟主机已附加到此目录

我已经修好了……谢谢。。错误消息显示这是apache配置问题。。跟你说的差不多。:) SOLUTION AllowOverride None AllowOverride All
"require": {
    "zendframework/zendframework": "~2.2.0"
}