【问题标题】:code about 404 works on one hosting provider, but not on the other关于 404 的代码适用于一个托管服务提供商,但不适用于另一个
【发布时间】:2022-02-03 20:55:31
【问题描述】:

我不知道我是否可以在不给出所有有点长的代码的情况下得到这个问题的答案。

我是一个试图理解一般的菜鸟。

我在我的两个网站上使用了一个完整网站的第三方脚本,这些网站托管在两个不同的虚拟主机提供商上。只有php,没有cms。网站的结构和代码其实完全一样,只是内容不同。

在第一个虚拟主机提供商上,它应该/它应该在应该发送 404 时正常工作,但在另一个上它显示错误“无法修改标头信息 - 标头已由(输出开始于///public_html//header.php:1) 在 /home3//public_html/**/footer.php 第 253 行

任何建议可能是什么问题,特别是可能有什么不同?

【问题讨论】:

    标签: php .htaccess http-status-code-404


    【解决方案1】:

    无法修改标头信息 - 已由发送的标头用于理解发生在如下代码上:

    <html>
    <body>
    hello world
    <?php header(...); ?>
    <body>
    </html>
    

    这里将一个 http-header 和“hello world”发送到浏览器,然后尝试再次发送一个 header。这将生成 headers already sent 错误消息。

    如果gzip在网络服务器上被激活,例如,网络服务器缓冲整个输出并在最后完全输出。在这种情况下,报头被合并并作为一个发送。所以gzip分别输出缓冲可以接受错误的代码。这可能是您的两个网络主机之间的差异。

    提示:您应该首先在代码中运行 header() 函数。 php前后的空行也会成为问题。

    [empty line]
    <?php
    header(...);
    ?><html>
    <body></body>
    </html>
    

    PHP outout puffering 在某些情况下也可以帮助避免这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      相关资源
      最近更新 更多