Zend framework Zend_重定向错误:在基本url前面加两次前缀

Zend 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///// 此变量包含以下

我使用Zend controller
\u redirect
方法遇到不规则行为

我的应用程序副本是通过My
DocumentRoot
中的符号链接生成的。此外,我的默认路由器是定制的,以响应此模式:

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())