404错误处理不存在的动态URL

时间:2017-02-17 13:44:15

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

现在我正确设置了.htaccess:

ErrorDocument 404 /404.php

每当我访问mysite.com/g.php等不存在的页面时,它会被重定向到404.php,标题会显示404状态。

每当有人试图访问不存在的故事时,例如mysite.com/story/123456,404状态就在标题中,但没有重定向到404页面。

每当故事不存在时我都会使用此代码:

if ($result == 0) { header("HTTP/1.0 404 Not Found"); exit();}

我做错了什么?

3 个答案:

答案 0 :(得分:2)

为您的错误文档提供完整路径:

ErrorDocument 404 http://yourdomain.com/404.php

答案 1 :(得分:1)

好的,我找到了解决问题的方法。

此代码将出现404错误,然后我包含404页面以显示页面:

header("HTTP/1.0 404 Not Found"); include '404include.php'; exit();

答案 2 :(得分:0)

这是设置http响应状态的正确方法:

private void TrackBarsValueChanged(object sender, EventArgs e)
{
    TrackBar clickedBar = sender as TrackBar;
    if (clickedBar == null) return;

    if (!trackBarValues.ContainsKey(clickedBar))
        trackBarValues[clickedBar] = clickedBar.Value;

    if (Math.Abs(trackBarValues[clickedBar] - clickedBar.Value) > clickedBar.LargeChange)
    {
        // yes, it was a big change
    }

    // store the current value
    trackBarValues[clickedBar] = clickedBar.Value;

}

与http服务器主机配置中的<?php // ... if ($result == 0) { http_response_code(404); exit(); } 一起使用(或者,如果确实有必要,可以在动态配置文件(ErrorDocument 404 /404.php)中),它应该按照您的意图执行。

相应的文档:http://php.net/manual/en/function.http-response-code.php