Zend framework2 404错误,Zend Framework 2路由无法匹配请求的URL

Zend framework2 404错误,Zend Framework 2路由无法匹配请求的URL,zend-framework2,Zend Framework2,我得到: 发生404错误 找不到页面。路由无法匹配请求的URL 我的module.config.php文件是: 'router' => array( 'router' => array( 'Test' => array( 'type' => 'Segment', 'options' => array( //http://localhost/Test/Test

我得到:

发生404错误

找不到页面。路由无法匹配请求的URL

我的
module.config.php
文件是:

'router' => array(
    'router' => array(
        'Test' => array(
            'type' => 'Segment',
            'options' => array(
                //http://localhost/Test/Test
                'route' => '/Test[/[:action]]',
                'constraints' => array(
                'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
             ),
             'defaults' => array(
                 'controller' => 'Test\Controller\Test',
                 'action' => 'Test'
              ),
          ),
      ),
   ),
),

请帮忙,我是Zend Framework 2的新手

如果输入错误,请尝试以下操作:

'router' => array(
    'routes' => array(

路由而不是路由器两次。

如果输入错误,请尝试以下操作:

'router' => array(
    'routes' => array(

路由而不是路由器两次。

请检查.htaccess文件和index.php文件。如果这些都存在于公用文件夹中,则意味着您必须使用url作为

 http://localhost/public/Test/Test.

你的密码几乎正确。安德鲁很好地指导了你。请告诉我您的答复。

请检查.htaccess文件和index.php文件。如果这些都存在于公用文件夹中,则意味着您必须使用url作为

 http://localhost/public/Test/Test.

你的密码几乎正确。安德鲁很好地指导了你。让我知道你的回答。

解决它,我丢失了字母“d”,因此是:Zend\Loader\StandarAutoloader我添加了“d”:Zend\Loader\StandarAutoloader。问候朋友们。提示:Zend Studio 10和他的de ZF2版本在这一刻运行得非常完美

为了修复它,我丢失了字母“d”,因此是:Zend\Loader\StandarAutoloader我添加了“d”:Zend\Loader\StandarAutoloader。问候朋友们。提示:Zend Studio 10和他的de ZF2版本在这一刻运行得非常完美

1.您还应该检查
application.config.php
并将您的模块名添加到返回数组中

return array(    
    'modules' => array(
        'Application',
        'your_module',
        .....    
 ),

2.如果没有。请检查
module.config.php

1中的路由数组。您还应检查
application.config.php
并将您的模块名添加到返回数组中

return array(    
    'modules' => array(
        'Application',
        'your_module',
        .....    
 ),

2.如果没有。请在
module.config.php

中检查路由数组,您应该在ZendskeletonApp中使用类似于应用程序模块的配置:

'router' => array(
    'routes' => array(
        'test' => array(
            'type'    => 'Literal',
            'options' => array(
                'route'    => '/book',
                'defaults' => array(
                    '__NAMESPACE__' => 'Test\Controller',
                    'controller'    => 'Test',
                    '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(
                        ),
                    ),
                ),
            ),
        ),
    ),
),
您只需添加以下代码:

'test' => array(
                    'type'    => 'Segment',
                    'options' => array(
                        'route'    => '[/:action][/:id]',
                        'constraints' => array(
                            'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'id'     => '[0-9]*',
                        ),
                        'defaults' => array(
                            '__NAMESPACE__' => 'Test\Controller',
                            'controller'    => 'Test',
                            'action'        => 'index',
                        ),
                    ),
                ),
将此代码添加到“子路由”键,然后您将访问url:localhost/:controller\u name/:action\u name/:id(示例:或)。现在是工作了!
此代码可以修复zf2文档中教程的错误404。

您应该在Zendskeleton应用程序中使用类似于应用程序模块的配置:

'router' => array(
    'routes' => array(
        'test' => array(
            'type'    => 'Literal',
            'options' => array(
                'route'    => '/book',
                'defaults' => array(
                    '__NAMESPACE__' => 'Test\Controller',
                    'controller'    => 'Test',
                    '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(
                        ),
                    ),
                ),
            ),
        ),
    ),
),
您只需添加以下代码:

'test' => array(
                    'type'    => 'Segment',
                    'options' => array(
                        'route'    => '[/:action][/:id]',
                        'constraints' => array(
                            'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'id'     => '[0-9]*',
                        ),
                        'defaults' => array(
                            '__NAMESPACE__' => 'Test\Controller',
                            'controller'    => 'Test',
                            'action'        => 'index',
                        ),
                    ),
                ),
将此代码添加到“子路由”键,然后您将访问url:localhost/:controller\u name/:action\u name/:id(示例:或)。现在是工作了!
此代码可以修复zf2文档中教程的错误404。

我建议还检查包含缓存配置文件的数据文件夹,在dev install中缓存的配置文件也可能导致此问题。 删除数据/缓存中的文件并重试

PS:如果你刚刚开始尝试zend站点上的博客模块,它是为初学者准备的,并且会更新新版本


我建议还检查缓存了配置文件的数据文件夹,在dev install中缓存的配置文件也可能导致此问题。 删除数据/缓存中的文件并重试

PS:如果你刚刚开始尝试zend站点上的博客模块,它是为初学者准备的,并且会更新新版本


谢谢,为了回答朋友,我在第17行添加了路由和:致命错误:在D:\wamp\www\zf\web\vendor\zendframework\zendframework\library\Zend\ServiceManager\AbstractPluginManager.php中找不到类“Test\Controller\TestController”?:“controllers”=>数组('invokables'=>array('Test'=>'Test\Controller\TestController',您还需要确保您的控制器实际存在:)是的,我有:返回数组('controllers'=>array('invokables'=>array('Test\Controller\Test'=>'Test\Controller\TestController'),),你能发布一些控制器代码吗?你在控制器类中的名称空间正确吗?谢谢你回答朋友,我添加了路由和:致命错误:在D:\wamp\www\zf\web\vendor\zendframework\zendframework\library\Zend\ServiceManager\AbstractPluginManager.ph中找不到类“Test\controller\TestController”p在第17行,您是否为控制器创建了可调用的?:“控制器”=>array(“可调用的”=>array(“测试”=>“测试\控制器\测试控制器”),您还需要确保控制器实际存在:)是的,我有:返回数组(“控制器”=>array(“可调用的”=>array)('Test\Controller\Test'=>'Test\Controller\TestController'),你能发布一些控制器代码吗?你在控制器类中有正确的名称空间吗?谢谢你的回答,我在我的.htacces:RewriteEngine On RewriteCond%{REQUEST\u FILENAME}-s[或]RewriteCond%中有这个{REQUEST_FILENAME}-l[OR]RewriteCond%{REQUEST_FILENAME}-d RewriteRule^.*$-[NC,l]RewriteCond%{REQUEST_URI}:$1^(/.+)(.+):\2$RewriteRule^(.*)-[E=BASE:%1]RewriteRule^(.*)$%{ENV:BASE}index.php[NC,l]您是否在application.config.php文件中包含了模块名。'modules'=>array('Test''Test'),您好,user2003356我的application.config.php文件中有这个url。请调用此url。将大写字符转换为小写。请更新,您将htaccess文件放置在何处。我测试此文件,发现:未找到请求的url/test/test在此服务器上未找到。。我的.htacces文件位于我的Zend Framework的公用文件夹中,而不是为了你的回答,我在我的.htacces:RewriteEngine On RewriteCond%{REQUEST_FILENAME}-s[或]RewriteCond%{REQUEST_FILENAME}-l[或]RewriteCond%{REQUEST_FILENAME}-d RewriteRule^.*$-[NC,l]RewriteCond%{REQUEST_URI}:$1^(.+)(.+):\2$RewriteRule^(.*-[E=BASE:%1]RewriteRule^(.*)${ENV:BASE}index.php[NC,l]您是否在application.config.php文件中包含了模块名。'modules'=>array('Test',),您好,user2003356我在application.con中有这个