Проблема индекса URL-адреса домашней страницы Zend Framework после удаления htaccess в Zend 2.2

Я хочу запустить приложение без .htaccess и удалил его. Теперь, когда я нажимаю домашнюю страницу, например. 'localhost/testsite/index.php/' работает, и соответствующий URL-адрес ссылки также работает правильно. Но когда я пытаюсь открыть «localhost/testsite/index.php», появляется сообщение об ошибке ниже.

Произошла ошибка 404 Страница не найдена. Запрошенный URL-адрес не может быть сопоставлен маршрутизацией.

Нет доступных исключений

Также, когда я открываю «localhost/testsite/», домашняя страница отображается правильно, но связанная ссылка перестает работать. Мое приложение module.config.php приведено ниже.

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'    => '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]]',
                        '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'
    ),
),
'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',
    ),
),

);

Пожалуйста, помогите, если кто-нибудь запустит приложение без htaccess в Zend 2.2.


person vikashkt    schedule 12.07.2013    source источник


Ответы (2)


Вы можете добавить общий маршрут, чтобы сделать косую черту необязательной, вы можете сделать это с типом маршрута сегмента

/**
 * Generic Route
 */
'generic' => array(
    'type'    => 'segment',
    'options' => array(
        'route'    => '[/:controller[/:action[/:id]]][/]', // allow trailing slash too [/]
        'constraints' => array(
            '__NAMESPACE__' => 'Application\Controller',
            'action'        => '[a-zA-Z][a-zA-Z0-9_-]*',
            'controller'    => '[a-zA-Z][a-zA-Z0-9_-]*',
            'id'            => '[0-9]+',
        ),
        'defaults' => array(
            'controller' => 'Index',
            'action'     => 'index',
        ),
    ),
),
person Andrew    schedule 12.07.2013
comment
Я поместил index.php, js, img и css в корневую папку приложения. Приложение размещено на IIS, и мы не используем htaccess. Приложение работает с localhost/testsite/index.php/,localhost/testsite/, но не с localhost/testsite/index.php. Пожалуйста помоги. - person vikashkt; 02.08.2013

отправная точка вашего приложения ZF2 находится в public/index.php, который не находится в корневой папке вашего хоста публикации, поэтому нам нужен .htaccess(использует mod_rewrite apache), чтобы перенаправить все запросы вашего браузера на [/] на [ public/index.php], если у вас есть какой-либо другой механизм для имитации перенаправления, вы можете обойти файл .htaccess.

person Raj    schedule 13.07.2013