繁体   English   中英

使用位置 header 重定向时出现错误 500?

[英]Error 500 when redirecting with location header?

我的代码尝试根据 url 中的 appname=x 参数重定向用户,该参数现在已被删除,因为只有一个参数是可能的,即代码的工作方式如下:

$appName="dev" //variable still set because it's used a lot

if($appName!=null){
    //write to log file
    if($appName="dev"){
        echo "<script>console.log('test successful');</script>";
        header('Location: '. 'https://dev.company.com'); //doesn't matter which address I put here
    else{
        echo "<script>console.log('not the dev');</script>";
    }
}

有趣的是,虽然我保留了“header()”行的注释,但回显记录到控制台就好了。 只要有任何标头('Location: ....),我就会收到 500 内部服务器错误。 无论我将 function 设置为 go 到哪个页面,都会发生这种情况。

出于安全原因,我无法打印整个错误,但它基本上看起来像这样:

获取https://login.company.com/callback.php?param1=..

突出显示各个参数的位置。

更奇怪的是callback.php 的第一行是console.log。 在这种情况下,在 header() 运行时永远不会达到这一点。 我没有看到我在这里做错了什么。 有任何想法吗?

我不想粗鲁,但我认为你的代码搞砸了,你忘记了分号和右大括号,你能试试下一个代码吗?

<?php
    $appName="dev"; //You forgot this semicolon

    if($appName!=null){
        if($appName=="dev"){ // You have to use == operator to compare, not =
            echo "<script>console.log('test successful');</script>";                                         
            header('Location: '. 'https://dev.company.com');
        }  // And also this closing brace                   
        else{
            echo "<script>console.log('not the dev');</script>";                                            
        }
    }

此外,如果您不熟悉 PHP,请尝试使用 IDE 进行自动完成。

我还应该补充一点,您不需要向客户端打印错误以了解发生了什么,这些错误通常记录到日志文件中,如果您没有 PHP 错误的日志,请考虑配置日志记录选项.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM