Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP头位置不工作/无HTTP状态:更改_Php_Http_Nginx_Header_Location - Fatal编程技术网

PHP头位置不工作/无HTTP状态:更改

PHP头位置不工作/无HTTP状态:更改,php,http,nginx,header,location,Php,Http,Nginx,Header,Location,我在PHP中使用头时遇到了一个问题标题('location:http:google.com')不工作。这是我的代码: if(!headers_sent()){ header("location: http://google.com"); exit; } HTML Data... 脚本正在退出,但header()不工作 我已经在php.ini中检查了output\u bufferparam,它被设置为4096 PHP开始标记上方没有多余的行 我的脚本是用UTF-8编码的,没有

我在PHP中使用头时遇到了一个问题<代码>标题('location:http:google.com')不工作。这是我的代码:

if(!headers_sent()){
    header("location: http://google.com");
    exit;
}

HTML Data...
脚本正在退出,但
header()
不工作

  • 我已经在php.ini中检查了
    output\u buffer
    param,它被设置为4096
  • PHP开始标记上方没有多余的行
  • 我的脚本是用UTF-8编码的,没有BOM
  • 所有错误都已启用,但我没有收到任何错误/警告/通知。发生了什么事
  • 环境:PHP7.0.27和NGINX
随后的尝试和调试步骤结束:

  • 标题(“位置:http://google.com“;,对,302)没有区别
  • 标题(“刷新:…”
    成功
  • HTTP响应调试(在被询问几次后):

    StatusCode:200
    状态描述:OK
    内容:
    注意:未定义索引:HTTP\u ACCEPT\u语言在。。。 RawContent:HTTP/1.1200ok 传输编码:分块 连接:保持活力 Pragma:没有缓存 缓存控制:没有存储,没有缓存,必须重新验证 内容类型:text/html;字符集=UTF-8 日期:201年5月18日星期五。。。 表格:{} 标头:{[传输编码,分块],[连接,保持活动],
仍然没有回答:

  • 标题(“状态:303等”);
    标题(“HTTP/1.1 301永久移动”);
    来自副本

  • PHP SAPI

  • 在phar外部运行示例代码

    • 试试这个

           header("Refresh: $seconds; URL=\"$location\"");  
      

      是的,这与其说是解决问题的办法,还不如说是在开发服务器上解决重定向问题。我编写了一个中间件函数来为您生成重定向头,只需将其添加到代码中,然后调用
      redirect(“URL”);


      您确定执行了第二个
      头()
      吗?请尝试放置位置而不是位置。我认为它区分大小写。
      设置错误处理程序(“var\u dump”)
      并展示该测试脚本的
      wget-S
      输出。@XerShade我已经试过了,但仍然不起作用。@mario这是你说的话的副本吗?他多次说没有错误,所以你怎么能将其标记为该错误的副本。我测试了他的原始代码,它在我的服务器上运行良好,因此问题解决了s他的服务器配置。那么,问题出在哪里?这个头工作了,它重定向到了目标位置。但是为什么“位置”头不工作?@ProtectedVoid我不知道,但是如果这个工作,你可以检查这个答案是否有用。谢谢。刷新工作,因为它是客户端,位置是服务器端,问题出在那里。
           header("Refresh: $seconds; URL=\"$location\"");  
      
      <?php
      
      function Redirect($location, $delay=0) {
          // Check to see if the header are already sent.
          if(!headers_sent()) {
              // Check to see if we want Refresh because Location isn't working.
              if(defined('REDIRECT_ALTERNATIVE')) {
                  // We want Refresh, let's go!
                  header("Refresh: $delay; URL=\"$location\"");  
                  exit;
              }
      
              // We want to do this server side, do it!
              header("Location: $location");
              exit;
          }
      }