Куда направить редирект?

CZ
На сайте с 27.06.2011
Offline
10
494

Ситуация такая: есть php страница с ?id=, которая обращается к бд и соответственно выводит содержимое. Если id несуществующий то отображается эта страница только без контента.

Вопрос: куда и как лучше сделать редирект когда вводится несуществующий id? На 404.php / главную / раздел? и какой код для этого нужен?

LEOnidUKG
На сайте с 25.11.2006
Offline
1761
#1

Конечно же 404 ошибка должна быть.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Marinka
На сайте с 21.04.2007
Offline
125
#2

Для всех несуществующих страниц сайта должна отдаваться ошибка 404.

А вот на странице\шаблоне 404-ошибки уже можете ставить ссылки для перехода на любой раздел сайта.

SeoHammer (http://www.seohammer.ru/?partnerid=123870) - продвижение сайтов в ТОП. Попробуй нарубить в Kappusta.Ru (http://kappusta.ru/?r=B0CC924593324D4A99EF8016BF16656E)! Поисковый и коммерческий аудиты, цена по договоренности.
CZ
На сайте с 27.06.2011
Offline
10
#3

Как тогда это технически сделать? Допустим не найдена запись в БД, или с запрещенными символами то как на php сделать такой редирект?

{header("HTTP/1.0 404 Not Found");header("Status: 404 Not Found");header("Location: /404.html"); exit();} вот это не работает у меня.

LEOnidUKG
На сайте с 25.11.2006
Offline
1761
#4

Если не найдено, то:

header("Location: /404.php");

А вот в 404.php пишите:

<?php header('HTTP/1.1 404 Not Found');header('Status: 404 Not Found');?>
Страница не найдена.

Не забывайте, что нужно включить ob_start чтобы работал редирект.

CZ
На сайте с 27.06.2011
Offline
10
#5

Спасибо, редирект работает.

Есдинственное, что у меня 404.html поэтому вариант с php не очень подходит. А есть какинибудь варианты прописать в секции <head> чтонибудь?

---------- Post added 07-05-2012 at 15:55 ----------

Посмотрел пару сайтов (блогов на wordpress) там при возникновении 404 ошибки пользователя не перекидывает на 404.php какуюнибудь, а в адресной строке брузера остается неправильно введенный адрес (вместо контента 404 соответсвенно появляется). как такое можно сделать?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий