路由无法匹配请求的URL

I'm trying to access sitename/news/id/1, but it gives me this error. I've been trying to fix it for the past 30 mins and I can't figure out what I'm doing wrong.

The config:

            //...
            'application' => array(
                'type'    => 'Literal',
                'options' => array(
                    'route'    => '/application',
                    'defaults' => array(
                        '__NAMESPACE__' => 'Application\Controller',
                        'controller'    => 'Index',
                        'action'        => 'index',
                    ),
                ),
                'may_terminate' => true,
                'child_routes' => array(
                    'default' => array(
                        'type'    => 'Segment',
                        'options' => array(
                            'route'    => '/[:controller[/:action]]/id/[/:id]',
                            'constraints' => array(
                                'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                                'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                                'id'         => '[0-9]+',
                            ),
                            'defaults' => array(
                            ),
                        ),
                    ),
                ),
            ),
            'news' => array(
                'type' => 'Zend\Mvc\Router\Http\Literal',
                'options' => array(
                    'route'    => '/news/id[/:id]',
                    'defaults' => array(
                        'controller' => 'Application\Controller\Index',
                        'action'     => 'news',
                    ),
                ),
            ),
        ),
    ),
    //...

I assume you're expecting this to match your 'default' route. Since that route is a child route of your application route, example.com/application/news/id/1 would match, but not example.com/news/id/1. I would get rid of the application route and just have the default route in its place.

Your news Route is of Type literal. But it Should be of Type Segment.

See http://framework.zend.com/manual/current/en/modules/zend.mvc.routing.html#http-route-types for the different Route types.