php如果页面不存在显示404

时间:2018-03-17 20:56:42

标签: php html variables include

我有一个代码,我正在努力工作。请原谅我的无知,我试图学习,但我找不到任何特别有帮助的东西。

我想做的是:

在我的索引上,显示show_news.php

使用index.php?page=blank时,显示blank.php

的内容

如果所选页面不存在,我想显示自定义404页面。如果使用blank2.php并且不存在,则说明其中包含404.php

404页面是我挣扎的。

<?php
$number = 4;
if(!$_GET[page]){ 
    include "show_news.php"; 
} elseif ($_GET[page]) { 
    include $_GET[page].".php"; 
} else { 
    include "404.php"; 
} 
?>

2 个答案:

答案 0 :(得分:0)

尝试使用file_exists()函数 http://php.net/manual/ru/function.file-exists.php

<?php
$number = 4;
define('ROOTPATH', __DIR__);
$project_path = ROOTPATH . "/path/to/page/files/";
$page = $_GET["page"];
$is_file_existing = $file_exists($project_path . $page . ".php");
if(!$page){
    include "show_news.php";
} elseif ($is_file_existing) {
    include $page . ".php";
} else {
    include "404.php";
}
?>

答案 1 :(得分:0)

我没有得到你的问题。 但是我会这样做:

if (isset($_GET['page']))
    include_once(dirname(__FILE__) . '/' . $_GET['page'] . '.php');
else
    include_once(dirname(__FILE__) . '/show_news.php');

然后在.htaccess文件中:

RewriteEngine On
RewriteBase /
ErrorDocument 404 /404.php

修改 在将其传递给 $ _ GET 之前,请使用 mysqli_real_escape_string