Стандартный маршрут Zend Framwork 2.2 (/) не может быть сопоставлен с маршрутизацией

Я искал решение в течение нескольких дней, но не могу найти решение. Помогите!

Я установил Zend Framework 2.2 и внедрил приложение MVC с несколькими маршрутами, контроллерами и представлениями. На моей системе разработки все хорошо. Локально я использую установку WAMP.

Я передал все своему веб-провайдеру (IIS8 с Helicon Ape) и получил все, что работает с буквальными маршрутами, например, www.url.nl/info.

Проблема в том, что стандартный маршрут / не работает. Я получаю сообщение об ошибке Zend 404, в котором говорится, что "Запрошенный URL не может быть сопоставлен путем маршрутизации".

Я использую рекомендованный стандартный буквальный маршрут в module.config.php:

        ....
        'home' => array(
            'type' => 'Literal',
            'options' => array(
                'route'    => '/',
                'defaults' => array(
                    'controller' => 'App\Controller\Index',
                    'action'     => 'index',
                ),
            ),
        ),
        'info' => array(
            'type' => 'Zend\Mvc\Router\Http\Literal',
            'options' => array(
                'route'    => '/info',
                'defaults' => array(
                    'controller' => 'App\Controller\Info',
                    'action'     => 'index',
                ),
            ),
        ),
        ....

и неизменный публичный /.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]

Мои собственные подозрения направлены на то, чтобы мой поставщик работал на IIS8.0 с Helicon Ape для поддержки файлов конфигурации Apache (.htaccess). В частности, файл web.config создается с файлами по умолчанию, в которых index.php.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" />
        <defaultDocument>
            <files>
                <clear />
                <add value="index.php" />
                <add value="Default.htm" />
                <add value="Default.asp" />
                <add value="index.htm" />
                <add value="index.html" />
                <add value="iisstart.htm" />
                <add value="default.aspx" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>

Я также не могу использовать полный URL-адрес непосредственно в /index.php. Та же ошибка

Заранее благодарю за любую помощь.

Питер

1 ответ

Это действительно IIS8, я видел это раньше. Но странно, что страницы по умолчанию не работают для вас. Попробуйте добавить правило поверх вашего.htaccess, например:

RewriteRule ^ $ /index.php [NC, L, NS]

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