Я использую Zend Framework на Ubuntu 11.10 (моя локальная машина для разработчиков). Когда я перейти к моему приложению с этим URL, фронт-контроллер страница/индекс работает отлично:Zend Framework Дает ошибку 404 для контроллеров
http://localhost/myapp/public
Так что я знаю, что по большей части все работает. Проблема возникает, когда я пытаюсь получить доступ к другому контроллеру с чем-то вроде:
http://localhost/myapp/public/faq
Это возвращает ошибку 404 «запрашиваемом URL/MyApp/государственный/чаво не был найден на этом сервере.»
Я использовал Zend_Tool для создания контроллера типа «zf create controller faq», который дал мне FaqController.php с помощью indexAction() по умолчанию. Он также создал представление faq.phtml. Все это прекрасно работает на моем ноутбуке (Windows XP), поэтому я знаю, что это должно быть что-то с настройкой.
Вот мой .htaccess (это по умолчанию один):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
В попытке заставить его работать, я добавил это в мой файл httpd.conf и перезапустить Apache:
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Когда это не сработало, я попытался поместить это прямо в мой файл .htaccess, но это тоже не было. Что мне не хватает? Что останавливает Zend от возможности переписывать и направлять запросы?
Я думаю, вы не должны получать доступ через общую папку непосредственно в URL-адресе, как вы настроили свой виртуальный хост? является .htaccess внутри общей папки? является общей папкой 'DocumentRoot' вашего сайта в настройках виртуального хоста? – jere
Как выглядят папки вашего контроллера? –
@JamesButler Это стандартный каталог Zend Framework, созданный "zf create project myapp" –