Как перенаправить на не-Zend ссылку из Zend-приложения - PullRequest
3 голосов
/ 12 ноября 2010

Мое приложение представляет собой смесь простых веб-страниц PHP и Zend-приложения.Иногда мне нужно перенаправить на простую веб-страницу PHP из Action приложения Zend.

Например:

Я хочу перенаправить с example.com/module/controller/action на example.com/simplephp.php.

Я пытался header("Location: example.com/simplephp.php");, но он не работает.

Спасибо

Ответы [ 3 ]

9 голосов
/ 12 ноября 2010

Да, основной помощник по перенаправлению позволяет перенаправлять на любой URL.

class MyController extends Zend_Controller_Action {
    public function indexAction() {

        $this->_redirect('/path/to/any/page.php');
        // or
        $this->_redirect('http://example.com/anypage.php');
    }
}
3 голосов
/ 12 ноября 2010

HTTP / 1.1 требует абсолютного URI в качестве аргумента. Запрос должен содержать http:// или https://

1 голос
/ 12 ноября 2010

Вам следует манипулировать объектом request, который отправляет заголовки HTTP.

Если вы хотите сделать:

header("Location: example.com/simplephp.php");

вам нужно:

$request->setHeader('Location', 'example.com/simplephp.php', true);

Затем вам нужно отключить макет, просмотреть рендеринг и другие ненужные вещи и т. Д.

Простой способ обработки перенаправлений, не слишком заботясь о деталях, - это Помощник действий перенаправителя .Вы можете использовать его даже вне контроллера, получая его статический экземпляр от Helper Broker.

Обратите внимание, что даже если укороченные URL-адреса работают почти во всех браузерах, вы всегда должны указывать полный URL-адрес для местоположения (включая протокол и домен)имя), как указано в HTTP 1.1.

...