URL Zend Framework - PullRequest
       3

URL Zend Framework

0 голосов
/ 08 марта 2012

У меня есть приложение Zend Framework, и оно, кажется, работает правильно, я могу получить доступ к своему приложению по адресу domain.com/controller/action для IndexController.Я сейчас сделал новый контроллер, и я получаю «страница не может быть отображена».

Однако я могу получить доступ к своему новому контроллеру по этому адресу domain.com/index.php/controller/action

Я проверил все обычные вещи, которые включены AllowOverride, перезапись включена, htaccessФайл по умолчанию создается при создании примера проекта Zend.Я чувствую, что упустил что-то фундаментальное, и если кто-то может помочь, это будет с благодарностью!Спасибо:)

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

Я думаю, что это может быть symlinks

вот пример vhost, который работает

<VirtualHost *:80>
    DocumentRoot "C:\www\zf2-tutorial\public"
    ServerName zf2-tutorial.local
    ErrorLog "C:\Zend\ZendServer\logs\zf2-tutorial.local.log"
    SetEnv APPLICATION_ENV "development"
    <directory "C:\www\zf2-tutorial">
    Options Indexes FollowSymlinks
    AllowOverride all
    Order Deny,Allow
    Allow from all
    </directory>
</VirtualHost>

Я думаю, что ваша проблема в том, что Options Indexes FollowSymlinks отсутствует.

Ваши URL должны работать с domain.com/module/controller/action, хотя может отображаться как domain.com/index.php/module/controller/action. Есть несколько способов удалить index.php из отображаемого URL. Я использую метод, чтобы добавить эту строку в верхнюю часть моего index.php

$_SERVER["REQUEST_URI"] = str_replace('index.php','',$_SERVER["REQUEST_URI"]);

0 голосов
/ 08 марта 2012

Вам нужно будет настроить маршруты, чтобы управлять тем, как ZF направляет (переводит) ваш запрошенный URL в определенный контроллер / действия.

Ознакомьтесь с документацией по Zend Framework здесь

Попробуйте добавить что-то подобное в ваш application.ini:

resources.router.routes.routename.route = "/ myroute /" resources.router.routes.routename.defaults.controller = mycontroller resources.router.routes.routename.defaults.action = myaction

РЕДАКТИРОВАТЬ : у вас могут возникнуть проблемы с переписыванием после перечитывания вашего вопроса :) вы упоминаете, что enableoverride включен - какая точная строка в вашей конфигурации?

Попробуйте "AllowOverride FileInfo" или "AllowOverride All", если ваши запросы вообще не маршрутизируются через ваш index.php, как это может показаться.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...