404 и ЧПУ

P
На сайте с 14.05.2012
Offline
35
613

В общем развлекаюсь как могу пишу свою "CMS" заодно освежаю свои познания в сайтостроении.

Суть вопроса пытаюсь сделать редиректы на 404


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

ErrorDocument 404 /404/

первые 4 строки отправляют все запросы на index.php (так ли это?)

на index.php проверяется существует данный раздел сайта (документ) или же нет. Если он существует то подключается шаблонизатор. А если такого файла нет то выполняется действие:


header('HTTP/1.1 404 Not Found');

и происходит ничего. Пустая страница. Если чуть изменить код:


header('HTTP/1.1 404 Not Found'); echo "ERROR 404";

ну и соответственно на странице появляется надпись, а хотелось бы что бы переходило на мою страницу 404. Как это сделать, что поменять?

domen4you
На сайте с 08.03.2013
Offline
53
#1

ErrorDocument 404 /404.php

P
На сайте с 14.05.2012
Offline
35
#2

ничего не поменялсь

Staid
На сайте с 30.07.2014
Offline
59
#3
perevezenzev:
и происходит ничего. Пустая страница.

Происходит отдача заголовка сервера, собственно то что вы и описали. Если нужен редирект на страницу, то пишем примерно следующее:


header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: /404”);
exit();

Тут подробнее http://devaka.ru/articles/redirect-301

P
На сайте с 14.05.2012
Offline
35
#4
Staid:
Если нужен редирект на страницу, то пишем примерно следующее:

Мне не нужен редирект, я хочу видеть вместо стандартной 404 свою страницу

siv1987
На сайте с 02.04.2009
Offline
427
#5

- Это для несуществующих файлов (которые не реврайтятся на index.php):

ErrorDocument 404 моя_404_страница

моя_404_страница имеет две формы записи - с http и без. http://httpd.apache.org/docs/2.2/mod/core.html#errordocument

- Для урл'ов которые реврайтятся на index.php делайте свою страницу ошибок на уровне cms.

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