CMS Routing в MVC

Я создаю свой собственный MVC фреймворк на php как средство для изучения более продвинутого программирования. Я установил и запустил фреймворк, однако у меня возникла проблема, связанная с текущим методом маршрутизации. Я хочу, чтобы фреймворк поддерживал CMS, чтобы дополнить интерфейсный сайт. Проблема в том, что моя структура маршрутизации работает так -mywebsite.com/controller/method/id Механизм маршрутизации сортирует информацию в массив, как это

segments 0 => controller, 1 => method, 2 => id

Прямо сейчас, если я захожу на сайт mywebsite.com/projects, он переводит меня на страницу администратора. Я не только хочу, чтобы это было доступно только с mywebsite.com/admin/projects, я хочу, чтобы mywebsite.com/projects выводил меня на фронтэнд.

Так что, если я хочу посетитьmywebsite.com/projects Мне бы хотелось, чтобы он отображал "front" контроллер, выдвигающий «проекты» в метод. Если я посещуmywebsite.com/admin/projects Мне бы хотелось загрузить контроллер проектов.

Вот текущий класс маршрутизации в целом следующим образом.

<?php

class Request {

    //url domain.com/controller/method/other
    //holds url segments 0 => controller, 1 => method, 2 => other, etc
    public $segments;
    function  __construct() {
        $this->parse_globals();
    }

    function parse_globals(){
        //$uri = preg_replace("|/(.*)|", "\\1", str_replace("\\", "/", $_SERVER['REQUEST_URI']));
        $uri = (empty($_GET['rt'])) ? '' : $_GET['rt'];
        $this->segments = array_filter(explode('/', $uri));
        if (in_array("admin", $this->segments)) {
            array_shift($this->segments);
        }
        print_r($this->segments);
        //remove index php
        if( reset($this->segments) == 'index.php') {
            array_shift ($this->segments);
        }
    }

    function controller(){
        return $this->segment(0);
    }

    function method(){
        return $this->segment(1);
    }

    function param( $str ){
        return isset($_REQUEST[$str]) ? $_REQUEST[$str] : false;
    }

    function segment( $no ){
        return isset($this->segments[$no]) ? $this->segments[$no] : false;
    }
}

Ответы на вопрос(3)

Ваш ответ на вопрос