Zend framework Zend_重定向错误:在基本url前面加两次前缀
我使用Zend controllerZend framework Zend_重定向错误:在基本url前面加两次前缀,zend-framework,redirect,Zend Framework,Redirect,我使用Zend controller\u redirect方法遇到不规则行为 我的应用程序副本是通过MyDocumentRoot中的符号链接生成的。此外,我的默认路由器是定制的,以响应此模式: http://localhost///// 从控制器中,我构建了一个URL,如下所示: $url=$this->\u helper->url('action','controller',$param\u A='valueA') 如果我访问url: http://localhost///// 此变量包含以下
\u redirect
方法遇到不规则行为
我的应用程序副本是通过MyDocumentRoot
中的符号链接生成的。此外,我的默认路由器是定制的,以响应此模式:
http://localhost/////
从控制器中,我构建了一个URL,如下所示:
$url=$this->\u helper->url('action','controller',$param\u A='valueA')代码>
如果我访问url:
http://localhost/////
此变量包含以下字符串:
//
当我打电话的时候
$this->\u重定向($url)代码>
用户被显式重定向到此路径,并具有冗余的基本路径
//
Zend似乎在两次预加基本路径
我的同事的应用程序副本保存在他的DocumentRoot
中,他没有遇到此问题
在操作之前,在操作内部定义一个空的基本路径,其工作原理如下:
$this->getRequest()->setBaseUrl(“”)代码>
这显然不是一个可行的解决办法。另一方面,在routeShutdown
的控制器插件中执行此操作可以消除应用程序目录的两种情况
是否有人对此问题的解决方案提出了建议,或者有任何关于进一步研究该问题的提示?如果使用URL
帮助程序生成的URL进行重定向,则需要通知重定向器它已经以基URL为前缀
只需使用以下命令
return $this->redirect($url, array('prependBase' => false));
尝试将prependBase
选项设置为FALSE
:
$this->\u重定向($url,array('prependBase'=>FALSE);
采埃孚参考资料摘录:
\u重定向($url,array$options=array()):重定向到另一个位置。此方法采用url和可选选项集。通过
默认情况下,它执行HTTP 302重定向
这些选项可能包括以下一项或多项:
退出:是否立即退出。如果请求,将立即退出
干净地关闭所有打开的会话并执行重定向
您可以使用在控制器中全局设置此选项
setRedirectExit()访问器
prependBase:是否在注册到的基本URL前添加前缀
请求对象指向提供的URL
您可以使用在控制器中全局设置此选项
setRedirectPrependBase()访问器
代码:重定向中要使用的HTTP代码。默认情况下,HTTP
302;可以使用301和306之间的任何代码
您可以使用在控制器中全局设置此选项
setRedirectCode()访问器
如果这不起作用,我可以建议动作助手“重定向器”吗
常用:
$this->\u helper->getHelper('Redirector')->gotoSimple($action,$controller=null,$module=null,array$params=array())