Получение 404 Ошибка, когда URI правильный

Я использую PHP 5.4, Zend Studio и Zend-Server.

Я получаю ошибку 404 при использовании этого URI:

http://localhost/MyExample/public/index.php

но когда я использую этот URI, я получаю правильную страницу для отображения:

http://localhost/MyExample/public/index.php/

Я думаю, что оба этих URI будут одинаковыми.

Вот файл.htaccess:

RewriteEngine On  
RewriteCond %{REQUEST_FILENAME} -s [OR]
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]

Вот код index.php:

<?php

/**
* This makes our life easier when dealing with paths. Everything is relative
* to the application root now.
*/
chdir(dirname(__DIR__));

// Setup autoloading
require 'init_autoloader.php';

// Run the application!
Zend\Mvc\Application::init(require 'config/application.config.php')->run();

1 ответ

Решение

ПРИМЕЧАНИЕ: добавление предыдущего комментария в качестве ответа

Это правильное поведение. URI передается маршрутизатору при вводе http://localhost/index.php содержит "index.php",

Поскольку нет соответствия маршрута "index.php", ошибка 404 отображается Zend Framework 2.

Когда используешь "/" или же "/index.php/" путь, соответствующий роутеру, пуст, поэтому вы получаете значение по умолчанию "home" Маршрут ZendSkeletonApplication совпадает.

Другие вопросы по тегам