перенаправить URL на страницу 404, если контроллер или метод не существует - PullRequest
0 голосов
/ 06 июня 2019

Я хочу перенаправить пользователя на страницу 404, если URL-адрес содержит несуществующий контроллер и метод

<?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();

}

1 Ответ

1 голос
/ 06 июня 2019

Перенаправление кого-либо на страницу 404 по умолчанию не удобно для пользователя.Вместо этого вы можете создать страницу с ошибкой и перенаправить пользователей на эту страницу следующим образом:

Header("Location: /404.html");

Это перенаправит посетителя на сайт www.yourwebsite.com/404.html.Вы можете настроить ссылку любым удобным для вас способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...