如果URL包含不存在的Controller和Method,我想将用户重定向到404页面
<?php
define('WEBROOT',str_replace('index.php','',$_SERVER['SCRIPT_NAME']));
//echo (WEBROOT .'<br/>');
define('ROOT',str_replace('index.php','',$_SERVER['SCRIPT_FILENAME']));
//echo (ROOT .'<br/>');
require_once(ROOT."core/Controller.php");
$url = $_GET["p"];
$urlArray = array();
$urlArray = explode("/", $url);
$controller = !empty($urlArray[0]) ? $urlArray[0] : "Home";
$methodOrAction = !empty($urlArray[1]) ? $urlArray[1] : "index";
echo $controller ."<br/>";
echo $methodOrAction ."<br/>";
if (file_exists("controllers/".$controller.".php") && method_exists($controller,$methodOrAction)){
require_once("controllers/".$controller.".php");
$controller = new $controller();
$controller->$methodOrAction();
}else{
// echo '404 : This file or method is not exist !';
require_once("controllers/ErrorMsg.php");
$ErrorMsg = new ErrorMsg();
$ErrorMsg->DisplayError();
}
答案 0 :(得分:1)
将某人重定向到默认404页面不是用户友好的。相反,您可以创建一个错误页面,并通过以下方式将用户重定向到该页面:
Header("Location: /404.html");
这会将访问者重定向到www.yourwebsite.com/404.html。您可以根据需要以任何方式自定义链接。