Php 如何从zend应用程序重定向到非zend链接
我的应用程序是简单PHP网页和zend应用程序的混合体。有时我需要从zend应用程序的操作重定向到简单的PHP网页 例如: 我想从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://是的,基本重定向操作帮助程序允许您重定向到任
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将使用自己的响应重新写入头,而不是按照您的意愿重定向。