Zend Framework: из папки (не /) - PullRequest
       1

Zend Framework: из папки (не /)

2 голосов
/ 12 августа 2010

Я замечаю, что когда я запускаю приложение Zend Framework с сервера, возникает много побочных эффектов.Основная проблема заключается в том, где я использую URL-адреса, такие как

/auth/login

мне нужно использовать

$this->baseUrl('/auth/login');

, который легко исправить.но когда я использую

$request->getRequestUri()

для использования в перенаправлениях.например, после входа в систему я хочу перенаправить пользователя обратно на предыдущую страницу, он переходит не туда.например.Мой корень приложения "http://localhost/app1", $request->getRequestUri() выдаст /app1. Когда я попытаюсь перенаправить назад, он перейдет на http://localhost/app1/app1. btw, я использую Zend Server + IIS7, и мое приложение настроеночтобы запустить с URL-адреса, указанного выше. Может быть, я вместо этого будет "/" вместо. Как я могу решить это?

обновление

это в моем классе Zend_Form

// (Zend_Form) Login.php init()
$req = Zend_Controller_Front::getInstance()->getRequest();
$returnUrl = $req->getParam('returnUrl', $req->getRequestUri());
$this->addElement('hidden', 'returnUrl', array(
    'value' => $returnUrl
));

// AuthController after login
$returnUrl = urldecode($form->getElement('returnUrl')->getValue());
if (!empty($returnUrl)) {
    $this->_helper->getHelper('Redirector')->setGotoUrl($returnUrl);
}

Ответы [ 3 ]

2 голосов
/ 13 августа 2010

В зависимости от вашего обновления:
Это опция prependBase - в перенаправителе, что вы ищете:

prependBase: логический флаг, указывающий, стоит ли добавлятьбазовый URL, если указан относительный URL

Итак, ваше исправление:

$this->_helper->getHelper('Redirector')->setGotoUrl($returnUrl, array('prependBase' => false));
1 голос
/ 11 ноября 2010

Если вы используете Zend_Application, вы можете использовать это в своем application.ini, и вам не нужно указывать что-либо еще.

resources.frontController.baseUrl = "/your/public/path/"
0 голосов
/ 12 августа 2010

Я решил эту проблему с помощью конфигов Apache.В файле \ usr \ local \ apache \ conf \ vhosts.conf найдите блок с вашим сайтом и измените пути и общую папку.

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