如果页面动态页面为空,如何重定向到404页面

时间:2013-11-27 02:35:54

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

如果动态页面中不存在404重定向,我会遇到一些问题。

我正在检索MySQL上的文章,在article.php上我有以下内容来检索页面的信息。

if(isset($_GET['article_uid']))
{
    $information        = $articleClass->retrieveArticleInfo();

    $article_title  = $information['article_title'];
    $article_image  = $information['article_image'];
    $article_content    = $information['article_content'];
    $article_image_alt  = $information['article_image_alt'];
    $article_quote      = $information['article_quote'];
}

网址如下所示:www.site.com/article/id/title-goes-here, 我遇到的问题是,如果页面不存在,我想显示404页面,问题是谷歌有我从MySQL删除的索引页面,但如果我尝试进入该页面,它就是'将显示article.php页面,但它将为空并且不会从MySQL检索数据,但问题是它仍允许某人进入该页面,即使它是空的。

如何向我的404页面添加重定向,如果我输入的内容如下,我知道以下内容有效.. www.site.com/ramdom-letters,它会带我到www.site.com/ 404.php,但如果我在任何其他页面,如www.site.com/article/,它将不会将用户发送到404.php

if(isset($_GET['article_uid']))
{
    $information        = $articleClass->retrieveArticleInfo();

    $article_title      = $information['article_title'];
    $article_image      = $information['article_image'];
    $article_content    = $information['article_content'];
    $article_image_alt  = $information['article_image_alt'];
    $article_quote      = $information['article_quote'];
} else {
    header('Location: http://www.site.com/404/');
}

我在htaccess上使用以下代码将我的网址更改为对seo友好。 RewriteRule (?:^|/)article/([^/]+)/([^/]+)/?$ /article.php?article_uid=$1&article_title=$2 [L,QSA,NC]

ErrorDocument 404 http://www.site.com/404.php

2 个答案:

答案 0 :(得分:0)

您可以使用php发送404标头,然后像这样重定向到404页面

header('HTTP/1.1 404 Not Found');
header('Location: http://www.site.com/404.php');

答案 1 :(得分:0)

我可以建议您编写自己的动态404页面(或文章)并将其保存在MySQL中。然后,当请求页面时检查它是否存在。如果没有,那么从MySQL获取动态404页面(或文章)并显示相反,也发送HTTP 404标题(对于机器人/抓取工具)。

header('HTTP/1.1 404 Not Found');

如果可能,我建议不要重定向到404页面。

header('Location: 404.html');