Страница не найдена по запросу url в zend 2 framework application

Я новичок в zend framework, и я пытаюсь настроить zend. Я был успешно установлен zendskeleton applicaion на окне 7 и XAMPP

После установки я создаю новый модуль Album в соответствии с определением в руководстве пользователя. Я делал все код и страницы в соответствии с руководством, но после этого я смог открыть модуль альбома . я получил ошибку 404 не найден.

здесь код

  1. application.config

    return array( 'modules' => array( 'Application','Album', ), 'module_paths' => array( './module', './vendor', ), 'config_glob_paths' => array( 'config/autoload/{,*.}{global,local}.php', ), ), ); 
  2. module.config

      return array( 'controllers' => array( 'invokables' => array( 'Album\Controller\Album' => 'Album\Controller\AlbumController', ), ), 'router' => array( 'routes' => array( 'album' => array( 'type' => 'segment', 'options' => array( 'route' => '/album[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'id' => '[0-9]+', ), 'defaults' => array( 'controller' => 'Album\Controller\Album', 'action' => 'index', ), ), ), ), ), 'view_manager' => array( 'template_path_stack' => array( 'album' => __DIR__ . '/../view', ), ), ); 
  3. module.php

     namespace Album; // Add these import statements: use Album\Model\Album; use Album\Model\AlbumTable; use Zend\Db\ResultSet\ResultSet; use Zend\Db\TableGateway\TableGateway; class Module { // getAutoloaderConfig() and getConfig() methods here // Add this method: public function getServiceConfig() { return array( 'factories' => array( 'Album\Model\AlbumTable' => function($sm) { $tableGateway = $sm->get('AlbumTableGateway'); $table = new AlbumTable($tableGateway); return $table; }, 'AlbumTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new Album()); return new TableGateway('album', $dbAdapter, null, $resultSetPrototype); }, ), ); } } 
  4. HTTPD-vhosts.conf

      <VirtualHost *:81> ServerName zf2-tutorial.localhost DocumentRoot "C:/xampp\htdocs/ZendSkeletonApplication/ZendSkeletonApplication-master/public" SetEnv APPLICATION_ENV "development" <Directory C:/xampp\htdocs/ZendSkeletonApplication/ZendSkeletonApplication-master/public> DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 
  5. запись хоста в system32

      127.0.0.1:8081 zf2-tutorial.localhost 

введите описание изображения здесь

Как я могу справиться с этим. благодаря

Solutions Collecting From Web of "Страница не найдена по запросу url в zend 2 framework application"

когда вы указываете свой корень документа apache на C:/xampp\htdocs/ZendSkeletonApplication/ZendSkeletonApplication-master/public

вам нужно использовать в своем браузере этот URL-адрес http://zf2-tutorial.localhost:8081/album а не как вы написали http://zf2-tutorial.localhost/ZendSkeletonApplication/ZendSkeletonApplication-master/public/album

этот URL-адрес указывает на другой модуль / местоположение.

//редактировать

если это не работает, проверьте свою zf2 /public общую папку, если есть файл .htaccess иначе используйте файл из приложения скелета zend здесь. https://github.com/zendframework/ZendSkeletonApplication/blob/master/public/.htaccess

проверьте также свою запись в apache vhost если port равен файлу вашего windows host .

убедитесь, что apache ModRewrite загружен!

Основные неправильные конфигурации в вашей установке приводят к этой ошибке.

  1. Я не использую окна в течение времени, но вы используете как прямые, так и обратные косые черты на ваших путях. Во-первых, вы должны найти правильный разделитель каталога для окон и придерживаться его. Это кажется проблематичным: C:/xampp\htdocs/foo/bar/public
  2. Вы определяете виртуальный хост, который прослушивает любой IP-адрес на порту 81 (*: 81), запись хостов system32, которая указывает на порт 8081 как псевдоним zf2-tutorial.localhost и пытается вызвать zf2-tutorial.localhost/album url, используя порт 80 . Получение такого рода ошибок довольно нормально.

После полного ознакомления с официальными документами Getting Started and Using Apache Web Server вы легко сможете найти решение.

Кажется, вам не хватает записи vhost на вашем веб-сервере. Это может послужить причиной того, почему ваше приложение не разрешает ваше право на запрос. Еще раз проверьте «получение старта: скелетное приложение», чтобы обеспечить правильную конфигурацию.

Вам нужна эта запись в хост-файле. Добавление портов в этот файл невозможно.

 127.0.0.1 zf2-tutorial.localhost 

Веб-сайт теперь доступен в zf2-tutorial.localhost: 81 (а не 8081, вы установили 81 в качестве номера порта в первой строке httpd-vhosts.conf)