PHP应用程序-某些东西阻止重定向到url


PHP application- something blocks redirect to url

我在Zend Framework 2中遇到了重定向的奇怪问题,但我认为框架在这里无关紧要,因为它在localhost上正常工作。我正在努力解决这个问题两天。

在我的本地主机上,我的第一个Zend2应用程序运行得很好,所以我决定在实时服务器上移动它,它就来了
我的行动之一是:

public function unknowAction()
{
    ...
    //var_dump($obj->getLink()); // Return string with url address
    $this->redirect()->toUrl($obj->getLink());
    //return false; // Tried with and without this
}

正如我提到的,在本地主机上它运行得很好,但在实时服务器上它不会重定向到提供的url。

在实时服务器上,上述操作返回HTTP请求代码302,但它停留在同一页面上。好像有什么东西会挡住它。

我用创建了php文件

<?php
header('Location: http://www.google.pl',true,302);
?>

只是为了检查我的服务器是否以某种方式禁用了重定向,但这个脚本重定向没有任何问题。

我在index.php 的顶部添加了

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

但我没有收到任何错误,没有任何警告,一切似乎都很好。

这是我向Stackoverflow的专家们提出的问题
什么可能阻止重定向?我应该去哪里看?我应该检查什么?

这是.htaccess,它是Zend2的标准配置,只是我添加了第一行和最后两行。

AddHandler x-httpd-php5-3 .php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::'2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
RewriteRule index.php / [L]
php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0

更新在我的行动中,我尝试了:

    public function unknowAction()
{
    ...
    return $this->redirect()->toUrl($obj->getLink());
}

通过这种方式,我得到了空白页面,浏览器在Quirks模式下显示。我在Firebug中检查了这一点,作为回应,我在html结构的顶部得到了以下字符(它是不可见的)

ďťż

目前,我正在我的文件中查找BOM。

您是否试图逃离给定的链接?或者,尝试重定向到硬编码的url,而不是从对象提供链接。