Forum Webscript.Ru
Программирование => PHP => Тема начата: golden-den от 12 Апреля 2009, 11:23:59
-
у меня 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 -ом вроде нельзя это сделать (вся инфа в базе, а правил для названий разделов нет - они любые могут быть)
-
решил.
в index.php при обнаружении ошибки просто вывожу шаблон 404 ошибки,а в header отправляю заголовок HTTP/1.1 404 Not Found.
-
Запись в .htaccess, кстати, предназначена не для того, что у Вас обрабатывается в index.php, а для неверных адресов всякого статического стаффа, вроде таблиц стилей, картинок, яваскриптов etc.
-
спасибо за подсказку, такая же проблема была!!
______________
Бывает крайне важна доставка цветов Москва (http:///) во избежание ссоры.
-
Вот кто бы дописал скрипт форума, чтоб он автоматом всем ссылкам в комментариях rel="nofollow" выставлял?
-
brainkiller
Это к NASу, наверно
-
brainkiller
Ты думаешь это остановит горе SEO ?
-
NAS
если бы все и везде так делали, то остановило бы. В единичном случае, конечно, вряд ли.