Php 如何从zend应用程序重定向到非zend链接

Php 如何从zend应用程序重定向到非zend链接,php,zend-framework,redirect,forward,Php,Zend Framework,Redirect,Forward,我的应用程序是简单PHP网页和zend应用程序的混合体。有时我需要从zend应用程序的操作重定向到简单的PHP网页 例如: 我想从example.com/module/controller/action重定向到example.com/simplepp.php 我尝试过header(“Location:example.com/simpleph.php”)但它不工作 谢谢HTTP/1.1需要一个绝对URI作为参数。请求应包含http://或https://是的,基本重定向操作帮助程序允许您重定向到任

我的应用程序是简单PHP网页和zend应用程序的混合体。有时我需要从zend应用程序的操作重定向到简单的PHP网页

例如:

我想从
example.com/module/controller/action
重定向到
example.com/simplepp.php

我尝试过
header(“Location:example.com/simpleph.php”)但它不工作


谢谢HTTP/1.1需要一个绝对URI作为参数。请求应包含
http://
https://

是的,基本重定向操作帮助程序允许您重定向到任何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');
    }
}

您应该操作
请求
对象,该对象发送HTTP头

如果您想这样做:

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

$request->setHeader('Location', 'example.com/simplephp.php', true);
然后,您需要关闭布局、视图渲染和任何其他不需要的东西等

处理重定向而不必太担心细节的简单方法是。您甚至可以在从Helper Broker检索其静态实例的控制器外部使用它


请注意,即使缩短的URL在几乎所有的浏览器中都有效,您也应该按照HTTP 1.1中的规定为位置(包括协议和域名)指定完整的URL。

使用
$this->\u重定向('/path/to/any/page.php')时出现“XML标记名不匹配”错误'303在使用
$this->\u重定向时发现“错误('http://example.com/anypage.php');在这两种情况下都不会重定向。找到303不是错误。这是一个重定向。。。这正是你想要它做的。如果您检查HTTP响应头,您将看到一个位置:头返回到您在$this->\u redirect()中提供的URL……上述解决方案应该可以正常工作。如果它不工作,您可能需要检查您的服务器环境。303看起来很奇怪。Zend框架通常默认发出302,如果您要求的很好,通常发出301。用于使用原始标题(“位置:url”);您需要立即退出(),否则Zend Framework将使用自己的响应重新写入头,而不是按照您的意愿重定向。