Как обрабатывать 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;
}
}