【问题标题】:PHP Header Location does not works in some casesPHP 标头位置在某些情况下不起作用
【发布时间】:2021-05-30 18:43:26
【问题描述】:

我对 PHP 函数 header('location:anylink'); 有一个奇怪的问题。并且不是编码问题,因为完全相同的脚本(是我的脚本)在其他安装中可以正常工作。已在我的客户的至少 10 个其他网站中检查过它,它们具有不同的服务器配置并且工作正常。

一个例子:我在我的代码中检查了数据库中是否存在文章 ID。如果不存在,则重定向到主页。如果存在,则显示文章页面。

文章 ID 不存在并(正确)重定向到博客主页的一些测试:

https://www.hostbignet.com/blog.php?do=article&id=400

https://oraclewebhost.org/blog.php?do=article&id=400

这是我网站中的链接。如您所见,它继续执行代码并显示页面,当然数据为空。

https://www.whmup.com/blog.php?do=article&id=400

已经尝试了至少十几个我在这里找到的类似问题的建议,但没有任何改变。我使用了 ob_start,我写了 Location 而不是 location,我在 URL 之前留了空格,我在重定向下面添加了 exit 和 exit()。没有解决问题。

我的代码是(我之前尝试过添加域名):

// Redirect Back
header('location:blog.php');

另外。我什至再次尝试使用 window.location.href 和 window.location.replace 什么都没有。

我的服务器是带有 CWP Pro 的 CentOS 7。

谢谢 克里斯

【问题讨论】:

  • header('location:'blog.php'); 有一个带引号的基本错误。
  • 我的站点配置:Apache:Apache/2.4.39 PHP:7.4.13 MySQL:10.2.36-MariaDB 也禁用了Mod Security
  • @Nigel Ren 你的意思是双引号吗?这是原来的。之后单引号发生了变化,因为再次尝试查找问题。
  • 中间那句话是干什么用的?
  • 好的,知道了。您的意思是 blog.php 之前的单引号。不在这里。在这里复制/粘贴是一个错误。当我删除了一个变量时,我错误地离开了它 $CFG["siteurl"].'/blog.php'

标签: php redirect header centos7


【解决方案1】:

我可以通过将文件另存为 ANSI 来解决此问题。我尝试过的任何其他编码都可以。

【讨论】:

  • @Nikel Ren 感谢您为我提供的帮助。非常感谢。最后,我在站点中找到了一个 php.ini,当我删除它时,一切都开始正常工作了。我在测试 php 设置的一些更改时忘记了它。
猜你喜欢
  • 2018-11-28
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 2017-06-29
  • 1970-01-01
相关资源
最近更新 更多