И вновь 404 заголовки, а я же говорил!

Пятница, 24 июня 2011 г.
Рубрика: Сайтостроительство
Метки: | |
Подписаться на комментарии по RSS

Вновь всплыла на форуме Макса тема о некорректной отдаче HTTP-заголовков. Видимо в прошлый раз я недостаточно рассмотрел проблему и, как следствие, она не была решена.

Цитирую:

У нас уже был случай, когда на странице пишется 404,
а в заголовке 200. По идее нужен контроль над отдачей заголовка.
Как выяснилось, существует загвоздка:

На уровне системы нет такого контроля - она лишь послушно раскладывает
адрес на сегменты. В других CMS этот процесс практически аналогичен -
можно добавить произвольные get-параметры в адрес и получить эту же
страницу.
Я вижу такой выход: по умолчанию система отдаёт 404. При подключении типов, если есть материал для отображения переопределяем на 200. Потом нужна проверка на лишние сегменты. И нужно в тех плагинах, где идёт подключение на сегмент сделать переопределение заголовка на 200.

Максим предложил такое решение:

Админ задаёт некий шаблон адреса, который считается верным, например:
category/*
category/*/next/*
/next/*
page/*
где / - разделитель сегментов, а * - произвольная часть сегмента. В этом примере адрес category/news будет валидным, а category/news/23 - нет.

То есть плагин при инициализации системы (хук init) проверяет текущий адрес на один из разрешенных шаблонов и если он соответствует любому варианту, то ничего не делает. Если же соответствия нет, переделывает type на page_404.

Нулевая тестовая версия плагина была реализована мной.

chaly_404.zip 0

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

Оставьте комментарий!

Используйте нормальные имена.

(обязательно)

Поиск

Статистика

Rambler's Top100