@garik2021

Как в php реализовать чпу как в wordpress или opencart чтобы url брались из базы данных mysql?

Здравствуйте подскажите пожалуйста как сделать чпу на php чтобы названия брались из базы данных как например сделано в opencart или в wordpress

Сейчас у меня ссылки работают по get параметру id и выглядят вот так page.php?id=1 есть еще вот такая ссылка class.php?id=1 как сделать вот так

page?id=1 превратить в ссылку вот такого вида /razdel1/razdel2 а ссылку class.php?id=1 превратить в ссылку такого вида /razdel/

Перерыл уже весь яндекс толкового примера так и не нашел в основном все преобразования с ссылками проводятся в .htaccess но такой вариант мне не подходит мне нужно чтобы все ссылки брались из базы
и сравнивались между собой
Например

page.php?id=1 => razdel1/razdel2
page.php?id=2 => razde3/razdel4
class.php?id=1 => /test/
class.php?id=2 => /test2/
Как сделать так ? Напишите пожалуйста пример на php pdo Спасибо
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
@hello_my_name_is_dany
Backend Developer (Node.js, PHP, C#)
Без проксирования или mod_rewrite никак этого не сделать. Запросы обрабатывает в первую очередь веб-сервер, и если ему не сказать, что все запросы должны проксироваться на index.php, он попытается открыть такой путь. А дальше уже после проксирования как раз на PHP берёте из HTTP-запроса URL ищите в базе или вручную прописываете, сравниваете и делайте, что надо, в зависимости от найденой страницы.
$db = new PDO($dsn, $user, $password);
$sth = $db->prepare('SELECT * FROM routes WHERE route = :route LIMIT 1');
$sth->execute([ ':route' => $_SERVER['REQUEST_URI'] ]);
$result = $sth->fetch(PDO::FETCH_ASSOC);

if (!$result) {
    echo "Not found!\n";
    die();
}

$routeId = $result['id'];

// ваша логика по обработке запроса или отображения страницы
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект