404 страница, правильные заголовки

D
На сайте с 20.09.2010
Offline
175
683

Есть страница

site.com/category/

При формировании страницы делается запрос

$sql="select * from db where url='".$_GET['category']."'"

и из таблицы выбираются данные которые ее формируют

Что правильнее отдавать пользователю, когда при запросе ничего в таблице не нашло

if($res->num_rows==0)

??

Варианты:

1. 301 Редирект на главную или 404 ошибку

2. 404 ошибка без редиректа с 404 заголовком

3. Ваш вариант

Joker-jar
На сайте с 26.08.2010
Offline
154
#1

Зависит от конкретной ситуации. Иногда следует отдать 404. Иногда (если категория подразумевается, но записей в ней нет) вывести сообщение, мол, записей в этой категории нет.

D
На сайте с 20.09.2010
Offline
175
#2

нет я именно о неправильной ссылке (страницы нет), как правильно поступить в разрезе грамотной технической стороны сайта

eklips007
На сайте с 02.02.2010
Offline
64
#3

Выдаете 4040 страницу с сообщением что урл неправильный. главное чтоб эта страница давала не 200 ответ сервера, а 404.

LinkBoss.net - Трастовые ссылки для увеличения трафика в 10 раз! (http://linkboss.net/)
M
На сайте с 04.12.2013
Offline
223
#4

datum, если страницы нет, то естественно 404. Если есть адреса формата /category/*, то можно влепить и редирект. Я обычно не заморачиваюсь этим, хотя влепить редирект или состряпать страницу со списком категорий не составляет особого труда.

---------- Добавлено 18.10.2016 в 17:37 ----------

Если в таблице ничего не нашлось, то по идее и по адресам /category/* ничего не найдется, поэтому можно смело 404-ую выдавать.

P.S. В нек. ситуациях имеет смысл выдавать пустой список или сообщение, что ничего не найдено, но это не такая ситуация.

---------- Добавлено 18.10.2016 в 17:51 ----------

Если имеется в виду /category/?category=valenki, то конечно тоже 404-ая. Я, как программист, сам такое обычно даже не пишу, т.к. движок, не найдя запрошенной категории, автоматом выдает 404-ую.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
S
На сайте с 30.09.2016
Offline
469
#5
datum:
При формировании страницы делается запрос
$sql="select * from db where url='".$_GET['category']."'"

С таким запросом Ваш сайт через три дня хакнут.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
M
На сайте с 04.12.2013
Offline
223
#6
Sitealert:
С таким запросом Ваш сайт через три дня хакнут.

Плюсую. То ж хотел нечто подобное написать, но подумал, что не суть.

---------- Добавлено 18.10.2016 в 18:10 ----------

Вот реакция простого движка на несуществующую запись в таблице: g09.ru/articles/valenki (с category абсолютно то же самое, просто не хочу светить адреса обычных сайтов).

Ragnarok
На сайте с 25.06.2010
Offline
226
#7

а оптимально отдавать 404 на шаблоне сайта, где можно написать что-то полезное, типа "заблудились? посмотрите тут и тут"

и сервер конечно должен отдавать 404

datum:
$sql="select * from db where url='".$_GET['category']."'"

выше правильно заметили (я уж боялся что никто не напишет). сайт живёт до первого вредителя

//TODO: перестать откладывать на потом
M
На сайте с 04.12.2013
Offline
223
#8
Ragnarok:
а оптимально отдавать 404 на шаблоне сайта, где можно написать что-то полезное, типа "заблудились? посмотрите тут и тут"

Само собой. По показанной мной выше ссылке выдается такая примитивна картинка только по той причине, что шаблон страницы ошибки примерно такой:


<h1><?= $page['name'] ?></h1>
<p><?= $page['content'] ?></p>

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