我将 Zend Framework 2 与 Zend Studio 10 和 Zend Server 一起使用。骨架应用程序运行良好,但除了“/”之外的任何内容都无法路由,它只返回“在此服务器上找不到请求的 URL”
这是module.config,除了我在路由“/lol”上添加了一个带有动作“lol”的控制器“Foo”之外,它几乎与骨架相同,但它不起作用。
<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/ZendSkeletonApplication for the canonical source repository
* @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
return array(
'router' => array(
'routes' => array(
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action' => 'index',
),
),
),
// The following is a route to simplify getting started creating
// new controllers and actions without needing to create a new
// module. Simply drop new controllers in, and you can access them
// using the path /application/:controller/:action
'application' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/lol',
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Foo',
'action' => 'lol',
),
),
'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(
),
),
),
),
),
),
),
'service_manager' => array(
'factories' => array(
'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
),
),
'translator' => array(
'locale' => 'en_US',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
),
'controllers' => array(
'invokables' => array(
'Application\Controller\Index' => 'Application\Controller\IndexController',
'Application\Controller\Foo' => 'Application\Controller\FooController',
),
),
'view_manager' => array(
'display_not_found_reason' => true,
'display_exceptions' => true,
'doctype' => 'HTML5',
'not_found_template' => 'error/404',
'exception_template' => 'error/index',
'template_map' => array(
'layout/layout' => __DIR__ . '/../view/layout/layout.phtml',
'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
'error/404' => __DIR__ . '/../view/error/404.phtml',
'error/index' => __DIR__ . '/../view/error/index.phtml',
),
'template_path_stack' => array(
__DIR__ . '/../view',
),
),
);
同样的事情,如果我将路由“/”更改为“/asdf”(仅此而已)然后尝试运行 localhost/Test/asdf 而不是 localhost/Test/ 我会再次得到“找不到 URL”。
编辑:我检查了 apache2 中的错误日志,这就是它所说的:
[Mon Jan 07 14:45:58 2013] [error] [client 127.0.0.1] File does not exist: C:/Program Files (x86)/Zend/ZendServer/data/apps/http/__default__/0/Test/1.0.0/public/lol
[Mon Jan 07 14:46:03 2013] [error] [client 127.0.0.1] File does not exist: C:/Program Files (x86)/Zend/ZendServer/data/apps/http/__default__/0/Test/1.0.0/public/lol
可能是什么原因造成的?