Установили ZF на сервер, загрузили приложение, теперь получаете 404? - PullRequest
2 голосов
/ 31 марта 2011

Я недавно установил Zend Framework на наш сервер под управлением IIS7 & PHP5.

Я загрузил приложение на сервер, созданный с использованием ZF.

Контроллер индекса работает нормально; Zend_Form форма входа построена, как и ожидалось, что означает, что установка ZF работает нормально.

Однако, когда выполняется вход в систему и в контроллере индекса вызывается $this->_helper->redirector('index', 'reseller');, я получаю сообщение 404 с сервера!

Есть идеи, что может быть причиной этого?

Большое спасибо

EDIT:

URL-адрес, на который меня перенаправляют, является (это правильно):

http://mydomain.co.uk/public/reseller

Запрошен физический путь (это может быть проблемой!):

D:\vhosts\mydomain.co.uk\httpdocs\public\reseller

(Это контроллер 'reseller', действие 'index', которое является частью приложения). enter image description here

1 Ответ

0 голосов
/ 31 марта 2011

Эта проблема была решена путем добавления XML-файла web.config в общедоступный каталог приложения:

<?xml version="1.0" encoding="UTF-8"?>
<!--<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1">
                    <match url="^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)?" />
                    <action type="Rewrite" url="/index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>-->
<configuration>
     <system.webServer>
         <rewrite>
             <rules>
                 <rule name="Imported Rule 1" stopProcessing="true">
                     <match url="^.*$" />
                     <conditions logicalGrouping="MatchAny">
                         <add input="{REQUEST_FILENAME}"
                             matchType="IsFile" pattern=""
                             ignoreCase="false" />
                         <add input="{REQUEST_FILENAME}"
                             matchType="IsDirectory"
                             pattern="" ignoreCase="false" />
                     </conditions>
                     <action type="None" />
                 </rule>
                 <rule name="Imported Rule 2" stopProcessing="true">
                     <match url="^.*$" />
                     <action type="Rewrite" url="index.php" />
                 </rule>
             </rules>
         </rewrite>
     </system.webServer>

...