【问题标题】:Send 404 header after page load页面加载后发送 404 标头
【发布时间】:2012-08-18 00:29:27
【问题描述】:

我正在尝试在页面加载后发送 404 标头,并想知道是否有任何解决方案。本质上,搜索数据库以查看 url 是否有效并对应于有效内容。如果没有,它将“包含()”一个 error.php 文件。

有没有我可以写一个 htaccess 规则说,每当这个文件被加载时,抛出一个 404?我怎么能在error.php文件中发送那个404,因为它不是第一个显示的东西?

【问题讨论】:

  • .htaccess -> RewriteRule ^error$ error.php [R=404,L] 在 PHP 文件中只是 @ob_flush();@header("HTTP/1.0 404 Not Found");跨度>
  • 这在 url/error 时有效,但我如何确保每当有从 url/exampleurl/error 的重定向时再次给出 404?

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


【解决方案1】:

在输出任何错误文本之前,首先在 error.php 上调用它。

<?php
    header("HTTP/1.0 404 Not Found");
?>

【讨论】:

  • 这不起作用,因为在调用error.php之前有一些显示
  • 据我所知,PHP 搜索 MySQL,发现没有任何内容包括 error.php。尚未输出任何内容。把它放在 error.php 的顶部,把你的错误文本放在它下面,你就可以开始了。
【解决方案2】:

您始终可以使用标头功能,只需记住在输出任何其他内容之前执行此操作。

我建议这样做而不是包含另一个文件,然后将您的服务器配置为提供适当的 404 文件。

PHP docs header function

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-17
  • 2016-04-14
  • 1970-01-01
  • 2018-04-29
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
相关资源
最近更新 更多