Объяснение, как использовать простую систему маршрутизации в PHP - PullRequest
0 голосов
/ 20 мая 2019

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

<?php

// Get the requested path with $_SERVER['REDIRECT_URL'],
// and require the page you want to display. I have '' and '/' for both url.com/ and url.com.

// REDIRECT_URL returns normal url e.g. /review,
// in the other hand REQUEST_URI returns including query string e.g. /review?page=4

$request = $_SERVER['REDIRECT_URL'];

switch ($request) {
    case '/' :
        require __DIR__ . '/views/index.php';
        break;

    case '' :
        require __DIR__ . '/views/index.php';
        break;

    case '/about' :
        require __DIR__ . '/views/about.php';
        break;

    default:
        require __DIR__ . '/views/404.php';
        break;
}

Когда я открываю его в первый разкогда он перенаправляет меня на index.php:

<h1>main</h1>

, а другая страница - about.php:

<h1>about</h1>

Мой вопрос: как я могу переключиться на about.php с помощьюсистема маршрутизации?

Потому что, если я напишу в url localhost / simpleRouter / views / about.php, похоже, что я обхожу систему маршрутизации .... поэтому я не могу понять, как правильно ее использовать дляпереключаться между страницами.Более того, страница index.php показывает мне MAIN, и это хорошо, но я получаю следующее:

Примечание: неопределенный индекс: REDIRECT_URL в D: \ App \ xAMPP \ htdocs \ studio \ Php\ SviluppareInPHP7 \ CAP7 \ simpleRouter \ index.php в строке 9

Спасибо, что ответили на мои вопросы и помогли мне улучшить свои знания в этой области.

1 Ответ

0 голосов
/ 20 мая 2019

Вы ищете перезапись URL. Вы можете настроить свой веб-сервер (Apache, NGinx, ...) для перенаправления всех или некоторых запросов, например, на ваш router.php.

Перезапись URL Apache
Перезапись URL NGinx

В вашем router.php вы можете извлечь первоначально запрошенный URL, например, about.php. Обратите внимание, что это отличается от views/about.php. Затем «Маршрутизатор» включает указанный файл. Это позволяет использовать произвольные URL-адреса вместо имен файлов.

Также проверьте разницу между REDIRECT_URL и REQUEST_URL здесь .

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