代码之家  ›  专栏  ›  技术社区  ›  animuson

头(“位置”)导致[500]内部服务器错误?

  •  1
  • animuson  · 技术社区  · 15 年前

    我不知道是什么导致了这个错误。我的Apache日志没有在访问日志或与页面相关的错误日志中记录任何错误,但是每当我取消对 header() 行我得到一个500内部服务器错误。它不能来自于php的致命错误,当内容被输出之前 标题() 是这样的,不会导致500分吧?

    header("Location: /offices/page-".ceil($cache->size() / 15));
    

    我测试过 $cache->size() 它返回22,所以它应该在字符串的末尾附加一个2并重定向。我确实有 ob_start() 标题() 但我试着打电话 ob_end_clean() 就在它之前,它还是什么都没做…

    我甚至试过 header("Location: /offices"); 在文件的开头,它仍然给了我500分。

    4 回复  |  直到 15 年前
        1
  •  3
  •   jasonbar    15 年前

    脚本在header()调用后继续执行。你需要放 exit; 紧接着。不过,这不会导致500个错误。

    编辑:很明显这是可行的——这意味着你的问题可能在页面后面的一些相关代码中?

        2
  •  2
  •   deceze    15 年前

    尝试使用完全格式的URL:

    header("Location: http://{$_SERVER['HTTP_HOST']}/offices/page-".ceil($cache->size() / 15));
    
        3
  •  0
  •   RaininDown    9 年前

    我也经历过同样的事情。在反复敲打我的头之后,它不是头(“location:mypage.php”);行被破坏了-它是mypage.php被破坏了!尝试重定向到另一页。我希望能节省别人的时间

        4
  •  0
  •   T.Todua Laurent W.    6 年前

    另一个原因可能是-您需要删除 空间 之后 location :

    header("location :
    header("location:

    如果这不是您的问题,请尝试检查php&apache 错误日志 .