标头位置在服务器上不起作用,但在本地主机上起作用

时间:2019-02-28 07:04:17

标签: php

我无法在服务器上使用标头位置,但是当我在本地主机上运行脚本时,一切正常。似乎服务器未运行此行。

header('location:index.php');

使用php 7.2运行linux堆栈的服务器,使用php 7.3运行localhost的xampp(osx)。

我在同一服务器上有几个项目,这些项目的标头位置都很好,并且运行良好。

6 个答案:

答案 0 :(得分:0)

检查您的index.php

的路径

您也可以尝试将其添加到标题之前。

ob_start();,然后您可以exit()

答案 1 :(得分:0)

header()必须在通过标准HTML标记,文件中的空白行或从PHP

发送任何实际输出之前调用

Linux服务器区分大小写,请尝试使用大写位置。最好在标头位置之后停止脚本,这样以后就不会再运行其他脚本了。

header('Location: index.php');  
exit;

答案 2 :(得分:0)

您可以使用

echo "<script> window.location.href = 'index.php'; </script>";

答案 3 :(得分:0)

您可以使用header()的替代方法:

echo '<script> location.replace("http://yoursite.com/yourpage.php");</script>';

答案 4 :(得分:0)

此问题的解决方案是将ob_start()添加到php文档的顶部。在Linux服务器和本地主机(带有XAMPP的MacO)上像超级按钮一样工作

答案 5 :(得分:-1)

header最适合绝对URL,请尝试使用http://...../index.php而不是仅使用文件名index.php,由于它是index.php,请使用父文件夹,并使用exit;命令 例如,如果

     Location('http://www.slyde.com/index.php'); 
     exit;
     //should be 
     Location('http://www.slyde.com');
     exit;

,以及相对文件夹。

     Location('http://www.slyde.com/app/index.php');
     exit;
     //should be 
     Location('http://www.slyde.com/app');
     exit;

我希望这能奏效。