Программирование > PHP
редирект на 404 ошибку
golden-den:
у меня CMS с ЧПУ.
в .htaccess все запросы перенаправляются на index.php
Там парсится URL и генерируется страница. Вся информация о структуре сайта в базе.
Нужно сделать правильную обработку 404 ошибки, т.е. если в базе не найден раздел/подраздел, отвечающий введенному URL, то пользователю выводится своя 404 ошибка.
в index.php стоит проверка: если нет раздела, то
header ("Location: /404.php");exit;
при этом идет редирект, 404 ошибка, но адрес в строке меняется с введенного на 404.php
Как сделать, чтобы адрес в строке не менялся?
в .htaccess я прописал
ErrorDocument 404 /404.php
только изначально мы не знаем - правильный url или нет - и попадаем в index.php, где и узнаем это.
mod_rewrite -ом вроде нельзя это сделать (вся инфа в базе, а правил для названий разделов нет - они любые могут быть)
golden-den:
решил.
в index.php при обнаружении ошибки просто вывожу шаблон 404 ошибки,а в header отправляю заголовок HTTP/1.1 404 Not Found.
brainkiller:
Запись в .htaccess, кстати, предназначена не для того, что у Вас обрабатывается в index.php, а для неверных адресов всякого статического стаффа, вроде таблиц стилей, картинок, яваскриптов etc.
LexaDstyle:
спасибо за подсказку, такая же проблема была!!
______________
Бывает крайне важна доставка цветов Москва во избежание ссоры.
brainkiller:
Вот кто бы дописал скрипт форума, чтоб он автоматом всем ссылкам в комментариях rel="nofollow" выставлял?
Навигация
Перейти к полной версии