PHP header()不会重定向状态代码

时间:2013-04-25 06:06:40

标签: php redirect header

我有一个代码

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

什么也没做。输出带有白色屏幕,我可以观看404响应状态,但没有重定向。 Ubuntu 12.04 / PHP 5.3

使用Debian Squeeze / PHP 5.3的服务器上的相同问题

我做错了什么?

更新

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

3 个答案:

答案 0 :(得分:8)

您不能拥有404的位置重定向。正确的行为是在404结果中包含404页面。

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

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

答案 1 :(得分:4)

它是404 Not Found或302 Redirect,它不能同时出现。如果您想发信号通知此页面不存在,请使用404.如果要重定向用户,请使用302.

答案 2 :(得分:0)

通过.htaccess

执行此操作
<IfModule mod_rewrite.c>
RewriteEngine On
ErrorDocument 404 /404.html
</IfModule>