Простой роутер (Рейтинг: +4)
Данный роутер не претендует на звание лучшего решения и пойдет сугубо новичкам как отталкивающий материал для создания своей системы роутера по сайту, но вполне рабочее решение которое можно применять в реальных проектах. Ну поехали.
Для начала добавим в файл .htaccess следующий код:
Теперь пишем файл роутера назовем его допустим route.php и положим по адресу domaine.ru/core/route.php:
Теперь ссылки делаем формата <a href="/chat/index">Чат<a> где "chat" это папка с файлами а "index" нужный файл.
Адрес типа domaine.ru/chat приведет к domaine.ru/core/application/chat/index.php
А адрес domaine.ru/chat/list приведет к domaine.ru/core/application/chat/list.php
Так же можно по простому передавать GET переменные:
domaine.ru/chat?page=2 и использовать "page" как обычную GET переменную (не забываем фильтровать при надобности).
Если будут вопросы прошу в ЛС =)
Добавил: Александр
13.11.2014 / 21:57Для начала добавим в файл .htaccess следующий код:
DirectoryIndex index.php Options All -Indexes RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L]С помощью этого кода делаем единую точку входа. Все наши запросы к сайту будут проходить через index.php.
Теперь пишем файл роутера назовем его допустим route.php и положим по адресу domaine.ru/core/route.php:
<?php /* Константы - обычно задаются раньше чем в самом файле роутера */ define('CORE_DIRECTORY', __DIR__); // Действия по умолчанию $application_name_default = 'main'; $action_name_default = 'index'; // Разбираем url на части $routes = explode('/', filter_var($_SERVER['REQUEST_URI'], FILTER_SANITIZE_URL)); // Получаем имя приложения $application_name = !empty($routes[1]) ? $routes[1] : $application_name_default; // Получаем имя экшена $action_name = !empty($routes[2]) ? $routes[2] : $action_name_default; // Грузим приложение $application_path = CORE_DIRECTORY . '/application/'. strtolower($application_name . '/' . $action_name) . '.php'; if ( file_exists($application_path) ) { require $application_path; } else { // Если неверное приложение то на главную $application_path = CORE_DIRECTORY . '/application/'.$application_name_default.'/'.$action_name_default.'.php'; require $application_path; }При необходимости путь "CORE_DIRECTORY . '/application/" заменить на свой и поместить файл route.php куда нужно (а лучше использовать его как class).
Теперь ссылки делаем формата <a href="/chat/index">Чат<a> где "chat" это папка с файлами а "index" нужный файл.
Адрес типа domaine.ru/chat приведет к domaine.ru/core/application/chat/index.php
А адрес domaine.ru/chat/list приведет к domaine.ru/core/application/chat/list.php
Так же можно по простому передавать GET переменные:
domaine.ru/chat?page=2 и использовать "page" как обычную GET переменную (не забываем фильтровать при надобности).
Если будут вопросы прошу в ЛС =)
Рейтинг:
+4
Просмотры: 3023Комментарии (33) »