PHP header()不使用状态码重定向



我有代码

<?php
header('Location: http://mydomain/404', true, 404);
exit;
?>

不做任何事情。输出带有白色屏幕,我可以看到404响应状态,但没有重定向。Ubuntu 12.04/PHP 5.3

在Debian Squeeze/PHP 5.3的服务器上也有同样的问题

我做错了什么?

更新。

它是函数的一部分,接受状态和路径。我需要重定向到具有指定状态码的指定页面。不能直接显示404页面

你不能为404页面设置位置重定向。正确的做法是在结果中包含带有404页头的404页面。

<?
header( $_SERVER['SERVER_PROTOCOL']." 404 Not Found", true, 404 );
include('404.php');
?>

除非404页面位于另一个域。在这种情况下,您可以简单地使用位置重定向,而不像Apache那样在默认情况下找不到错误文档。

这是一个404未找到或302重定向,它不能在同一时间。如果你想提示此页面不存在,使用404。如果您想重定向用户,请使用302。

通过.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
ErrorDocument 404 /404.html
</IfModule>

最新更新