3

Это моя проблема:Zend Framework: «URL не найден» только с контроллером индекса, только если в нижнем регистре

У меня есть приложение, работающее Зенд работает на Арубе/Linux. Кажется, что хорошо работает.

У меня есть несколько контроллеров: индекс, пользователь, видео, ...

если я тип «http://www.foo.com/public/» я могу достигнуть моего указательного контроллер и указательного действия. если я напечатаю «http://www.foo.com/public/user/register», я могу связаться с моим пользовательским контроллером и зарегистрировать действие.

если я типа «http://www.foo.com/public/index/index» сервер возвратного URL не найден :(

Но самое странное, что если я типа «HTTP://www.foo.com/public/Index/index»(обратите внимание на ЗАГЛАВНОЙ I) он работает.

Я пытаюсь объяснить, но я не нашел :(

Можете ли вы мне помочь

Заранее спасибо, Gabriele.

PS: в локали на моем компьютере он работает хорошо


UPDATE

поведение, что я не заметил, во второй половине дня: если я называю контроллер, который не существует Зенд показать пользовательскую ошибку страницы с записью о том, что не указан указанный контроллер. С помощью указательного контроллера я получаю вместо этого 404: url не найден ...

Я абсолютно не знаю, что делать ... пожалуйста, помогите мне !!


RE-ОБНОВЛЕНИЕ

Я изменил контроллер по умолчанию с «индексом» до «Foo», я переименовал все файлы, классы и папки правильно и приложение работает хорошо, без этой дурацкой ошибки ...

Похоже, что «индекс» слово создает какой-то ошибка .. Это своего рода магия ...

+0

местного = окно? если да, проверьте имена своего контроллера. IndexController.php и класс: IndexController extends .. – opHASnoNAME

+0

Извините, если я не написал его: я нахожусь на mac под сервером apache! Так что, как на linux ... имена точно так же, как вы пишете! – user1192448

+0

есть что-то в вашем журнале ошибок? – opHASnoNAME

ответ

3

Попробуйте изменить индекс URL для индекса/индекса, а не индекс/индекс apache2 по умолчанию в s екоторые конфигурации выбирает индекс в качестве индекса по умолчанию. * файл доступен в корневом каталоге документов

0

Я изменил «/ индекс» к «/ Index», и она работала

+0

вы можете объяснить немного больше? в чем была причина проблемы, строго конфиденциальный каталог? – greedybuddha

4

У меня была такая же проблема.

Проблема была в настройке виртуального хоста. я имел следующие параметры в моей директории моего виртуального хоста:

<Directory /home/koen/zend/ZendCMS/public> 
      Options Indexes FollowSymLinks MultiViews ExecCGI 
      AllowOverride All 
      Order Deny,Allow 
      Allow from all 
</Directory> 

Когда я поставил тир перед MultiViews и фиксированной проблемы.

Как это:

<Directory /home/koen/zend/ZendCMS/public> 
      Options Indexes FollowSymLinks -MultiViews ExecCGI 
      AllowOverride All 
      Order Deny,Allow 
      Allow from all 
</Directory> 

Надежда, что помогает

+0

спасибо! Я попробую – user1192448

+0

Если это помогло вам решить вашу проблему, пожалуйста, принимайте ее как ответ :) –

+0

Вы также можете просто удалить параметр «MultiView», по умолчанию он отключен. В моем apache2.4 мне нужно было поставить '+' или '-' для всех параметров, если бы я хотел исключить« MultiViews »в явном виде – cypherabe

2

Я столкнулся с той же проблемой, когда я модернизировал от Apache 2.2 до 2.4. Я в основном копировал файл httpd-vhosts.php с одной версии на другую (после внесения изменений, перечисленных в руководстве по обновлению). Мой сайт работал отлично для каждой страницы, кроме/index, хотя домашняя страница загружалась, если бы я оставил ее.

Ответ, предоставленный ArneRie в исходной ветви ответа, - это то, что разрешило это для меня. Проблема с удалением MultiViews из файла conf.

0

У меня была проблема simillar сегодня.

Все другие контроллеры работы, а также маршруты к контроллеру индекса так:

$router->addRoute("object", 
     new Zend_Controller_Router_Route_Regex("object/(\d+)", 
      array(
       "controller" => "index", 
       "action"  => "object" 
      ) 
     ) 
    ); 

тоже работает.

Но объект/index/object показывает ошибку 404, не найденную.

Должно быть что-то с параметрами в настройках vhost. Я полностью их удалил, и это помогло мне в моем случае.

P.S .: Кроме того, вы можете направить свой виртуальный хост на общей папке, так что ваши ссылки будут выглядеть следующим образом: http://www.foo.com/user/register, а не http://www.foo.com/public/user/register

Смежные вопросы