Как обрабатывать 404 страницу если на сайте ЧПУ ссылки?

У меня на сайте все ссылки являются ЧПУ, т.е site.com/film-box, но из-за этого не работает 404 страница.

Т.е когда пишешь site.com/рандомныебуквы - сайт принимает её как отдельную чпу страницу.

Как это исправить?

Когда есть второй слеш site.com/рандомныебуквы/рандомныебуквы - 404 вызывается.

Обработка URL:

function get_singles_by_url($url)
{
    global $db;
    $singles = $db->query("SELECT * FROM singles WHERE url = '$url'"); // URL странице
    foreach ($singles as $single) {
        return $single;
    }
}

Ответы (1 шт):

Автор решения: 隼SAPSAN

Я так понимаю все адреса страниц хранятся в БД?

Ну и сделайте тогда проверку

function get_singles_by_url($url)
{
   global $db;

   //Тут не понятно почему нет защиты от SQL Inject, но возможно вы используете какую-то библиотку где есть предварительная подготовка к отправке запроса.
   $singles = $db->query("SELECT * FROM singles WHERE url = '$url'"); // URL странице

   if(empty($singles))
   {
       //Тут выводим 404 ошибку или возвращаем то что нужно что бы ее вывести
   }
   else
   {
       //Тут тоже не понятно что за цикл??? При первом проходе он будет остановлен
       //Я так понимаю тут класс БД c использованием PDO тогда просто можно вернуть return $singles[0];
      foreach ($singles as $single) {
          return $single;
   }
}
→ Ссылка