Jumast
@Jumast
разработка сайтов - html/css/php/js

Как правильно сделать роутинг в htaccess?

Всем привет!
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
RewriteRule ^users(.+)$ index.php?url=users&page=$1 [QSA,L]

Как правильно реализовать чпу в htaccess
1 - /index.php
2 - /index.php?url=about
3 - /index.php?url=users&page=profile

1 - /
2 - /about
3 - /users/profile

---- index.php
define('SKYLIGHT',dirname(__FILE__));

# Шапка
include('inc/head.php');

$url = $_GET['url']; // site.ru/url=название

if(isset($url)){ 
if(file_exists(dirname(__FILE__)."/pages/".$url.".php")){ 
include(dirname(__FILE__)."/pages/".$url.'.php'); // Ищем файл в директории
}else{ 
include(dirname(__FILE__).'/pages/404.php'); // Страница 404
} 
}else{ 
include(dirname(__FILE__).'/pages/main.php'); // Главная страница
}

# Подвал
include('inc/foot.php');

---- /pages/users.php
include ('./inc/menu.php'); // Меню пользователя будет со всеми страницами в /pages/user/

$url2 = $_GET['page'];

if(isset($url2)){ 
if(file_exists(dirname(__FILE__)."/user/".$url2.".php")){ 
include(dirname(__FILE__)."/user/".$url2.'.php'); // Ищем страницы
}else{ 
include(dirname(__FILE__).'/404.php');
} 
}else{ 
include(dirname(__FILE__).'/user/acc.php'); // Профиль основная в /user/
}

Описание файлов
/index.php - инклудит директорию /pages
/pages/users.php - инклудит директорию /pages/user

Вот скрипт для наглядности: Яндекс.диск

--------------------------------------------
Просьба не советовать MVC.
  • Вопрос задан
  • 488 просмотров
Пригласить эксперта
Ответы на вопрос 1
xEpozZ
@xEpozZ
Веб-разработчик
Просьба не советовать MVC.

Советую погуглить. Ваши кейсы лет 20 уже существуют
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы