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

时间:2013-12-04 12:49:28

标签: php redirect zend-framework2

我在Zend Framework 2中有重定向的奇怪问题,但我认为框架在这里并不重要,因为它在localhost上正常工作。我试图解决这个问题2天。

在我的本地主机上,我的第一个Zend 2应用程序非常出色,所以我决定将它移到实时服务器上,然后就来了。
我的一个动作是:

public function unknowAction()
{
    ...

    //var_dump($obj->getLink()); // Return string with url address

    $this->redirect()->toUrl($obj->getLink());

    //return false; // Tried with and without this
}

正如我所提到的,在localhost上它工作得很完美,但在实时服务器上它不会重定向到提供的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,它是Zend 2的标准,只是第一个,最后两行由我添加。

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。

1 个答案:

答案 0 :(得分:0)

你试图逃避给定的链接吗?或者不是从对象提供链接,而是尝试重定向到硬编码的URL。