Zend _redirect错误:两次添加基本URL

Dan*_* B. 5 redirect zend-framework

使用Zend控制器_redirect方法遇到了不规则的行为.

我的应用程序副本是通过我的符号链接产生的DocumentRoot.我的默认路由器也是自定义的,以响应这种模式:

http://localhost/<appSymLink>/<param_A>/<controller>/<action>/

从控制器,我构建一个这样的URL:

$url = $this->_helper->url('action', 'controller', $param_A = 'valueA');

如果我访问网址:

http://localhost/<appSymLink>/<param_A>/<controller>/<action>/

该变量包含以下字符串:

/<appSymLink>/<param_A>/<controller>/<action>/

当我打电话的时候

$this->_redirect($url);

用户显式重定向到此路径,具有冗余基本路径.

/<appSymLink>/<appSymLink>/<param_A>/<controller>/<action>/

Zend似乎在两次基础路径之前.

我的同事的应用程序副本存在于他的中DocumentRoot,他没有遇到这个问题.

在操作之前定义一个空的基本路径,就在操作之前,其工作原理如下:

$this->getRequest()->setBaseUrl('');

这显然不是一个可行的解决方案.另一方面,在控制器插件中执行此操作可以routeShutdown消除两次出现的应用程序目录.

有没有人有解决这个问题的建议,或任何进一步查看的提示?

Phi*_*hil 6

如果使用从Url帮助程序生成的URL 重定向,则需要通知重定向程序它已经使用基本URL作为前缀.

只需使用以下内容即可

return $this->redirect($url, array('prependBase' => false));
Run Code Online (Sandbox Code Playgroud)