Проверка URL на существование

NightHunter

Экзорцист
Регистрация
25 Фев 2014
Сообщения
728
Реакции
1.056
Всем привет. Народ, есть проблема, над которой сижу уже долгое время...Есть самописный сайт (не мной сделан), в котором некоторые страницы, не отдают 404.
Например site.ru/price/несуществующий урл - не отдаёт 404.

У меня есть код:

Скрытое содержимое доступно для зарегистрированных пользователей!

Он то по сути рабочий, но он дублирует шапку сайта и лишь потом, выводит 404.php т.е. отдельно, а не заменяет полностью страницу + он ещё и саму страницу "price" показывает в 404.
Мне нужен код, который будет из таблицы, вытягивать название урл, сравнивать с тем, что есть и если юзер ввёл направильный урл, то чтобы он выкидывал 404, есть нюанс, с которым столкнулся - на сайте есть статические страницы, урл которых нет в БД и поэтому я при решении данной проблемы, даже если её решал частично, получал 404 на других страницах.
P.S. Полный код страниц, могу предоставить, если надо будет.
 
1. в 404.php просто уже инклюдится шапка, просто удали ее из шаблона 404.
2. Добавь что это не страница /price/, что-то вроде
Код:
if ($_SERVER['REQUEST_URI'] != '/price/')
 
1. в 404.php просто уже инклюдится шапка, просто удали ее из шаблона 404.
2. Добавь что это не страница /price/, что-то вроде
Код:
if ($_SERVER['REQUEST_URI'] != '/price/')
Гляну, спасибо. А можно как-то сравнить урл? Из БД я вытягиваю ссылку и сравнивать её с той, что ввёл юзер? Я просто никогда подобного не делал и поэтому нет опыта в этом. Пробовал делать сравнение, но ничего не получалось.
Например вот так делал (код уже немного костыльный, пробовал исправлять:(
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Гляну, спасибо. А можно как-то сравнить урл? Из БД я вытягиваю ссылку и сравнивать её с той, что ввёл юзер? Я просто никогда подобного не делал и поэтому нет опыта в этом. Пробовал делать сравнение, но ничего не получалось.
Например вот так делал (код уже немного костыльный, пробовал исправлять:(
Ну то что я кинул, как раз проверяет урл,
$_SERVER['REQUEST_URI'] -отдает все после доменного имени без get запросов.
В каком виде у вас лежат ссылки я не знаю.
 
Тогда уже лучше проверять так:

Код:
if (isset($_SERVER['REQUEST_URI']) && stristr($_SERVER['REQUEST_URI'], '/price/') !== false) {
    страница 'price' существует!
} else {
    header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404);
    include("404.php");
    die();
}
 
Назад
Сверху