Получение 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 совпадает.