Проблема в .htaccess с ErrorDocument 404

f5_kitten

Новичок
Проблема в .htaccess с ErrorDocument 404

Привет всем php-программистам...
У меня вопрос... Когда я прописываю в .htaccess
PHP:
 ErrorDocument 404 index.php
страница index.php не найдена? Она лежит в одной директории с .htaccess!!! Получается он не видит ее...
Когда же я прописываю полный путь с HTTP://... то все работает, только переменная $_SERVER["HTTP_REFERER"] не принимает значение не найденной страницы, которое мне необходимо узнать.
Всем кто сталкивался с данной проблемой или знает как это можно решить - пожалуйста помогите!!!
 

f5_kitten

Новичок
Да я так и пишу, но проблема в том, что он не видит index.php.
Не видит ни на локальном ни на сервере... Я вообще не помимаю в чем тут проблема... Вроде все делаю правильно
 

Bor-ka

Новичок
f5_kitten
значит пропиши полный путь.

чтьо значит "не видит index.php"?
 

f5_kitten

Новичок
когда прописываем полный путь, то тогда каким образом мы вычленяем url вызвавший ошибку??? Все переменные указывают на файл-обработчик, т.е. на index.php...
 

440hz

php.ru
Автор оригинала: f5_kitten
когда прописываем полный путь, то тогда каким образом мы вычленяем url вызвавший ошибку??? Все переменные указывают на файл-обработчик, т.е. на index.php...
посмотреть логи апача слабо? что он там на самом деле запрашивает и отдает?

может сделать не index.php, а 404.php? а то как-то непонятно. Index.php отдается по дефолту, а если не найден, то ищется сам же Index.php что ли? что-то я не понял этого изыска?

p.s. так из практики я по 404 отдаю 302 и делаю редирект уже на нужный обработчик. потому как IE (больно умный) подсовывает свои странички. Может у тя все и находится, а вот IE подменяет своей страницей? Известная фича ...

PHP:
header("HTTP/1.0 302 Found");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("location: /404/");
 

f5_kitten

Новичок
посмотреть логи апача слабо? что он там на самом деле запрашивает и отдает?
-~{}~ 11.10.05 15:40:

Такое впечатление, что апач не видит .htaccess. В логах указывается, что он просто вызывает ошибку 404.
<<<File does not exist: D:/www/fkghklhg>>>
и передает <<<"GET /fkghklhg HTTP/1.0" 404 195>>>

Кстати переименовала на 404.php....

Вопрос: а где указывать header? Насколько мне известно в 404.php?
 

kruglov

Новичок
440hz
я по 404 отдаю 302 и делаю редирект уже на нужный обработчик. потому как IE (больно умный) подсовывает свои странички.
Начнем с того, что страницы, выдащие статус 404, не индексируются в поисковиках, тогда как IE не показывает свои ошибки для страниц больше полукилобайта. Зачем вам индексировать 404 страницу?

Про редирект:
Пользователь обычно крайне негативно относится к тому, что его 2 минуты набивавшаяся строчка с адресом и опечаткой заменяется "умным" сайтом на "/404/", не давая эту опечатку исправить, только набивать заново.

Поэтому прошу неправильных советов не давать.

-~{}~ 11.10.05 10:48:

f5_kitten
Если апач свой (и криво настроенный), то у него в httpd.conf ищите AllowOverride.
 

f5_kitten

Новичок
f5_kitten
Если апач свой (и криво настроенный), то у него в httpd.conf ищите AllowOverride.
В настройках все правильно. Как я понимаю необходимо прописать везде <<<AllowOverride All>>>. Это разрешает использовать настройки .htaccess.

Суть моей задачи состоит в том, что при переходе на несуществующую страницу мы должны вычленить url, прочитать что нам необходимо было, сгенерить страницу, используя базу...
 

kruglov

Новичок
Если у вас не работает .htaccess, надо сначала разобраться с ним.

А потом уже думать, как лучше делать вызов обработчика несуществующей страницы.

Лично я люблю применять mod_rewrite, а не ErrorDocument. Как-то кошернее и страницы потом POST-запросы обрабатывать могут.
 

440hz

php.ru
Автор оригинала: kruglov
440hz
Поэтому прошу неправильных советов не давать.
если кто-то делает не так как Вы, то означает ли это, что сие не правильно?
на 404 поисковик и не попадет, если ссылки на сайте все нормальные. а IE отобразит то, что мне надо, а не свое представление о 404 ошибке.
 

kruglov

Новичок
440hz
В данном случае, безусловно, означает. Простите, но уровень ваших заключений дает мне право так говорить.

Слушайте внимательно. Еще раз:
IE отобразит то, что вам надо, не только если статус 200, а если длина страницы больше полукилобайта. Отдавать 200 на несуществующую страницу ересь несусветная.

Касательно нормальных ссылок:
Я лично сделаю ненормальную ссылку на ваш сайт и зарегистрирую ее в яндексе. Или вы сами в процессе реорганизации сайта удалите какую-нибудь страницу, а яндекс так и не узнает, что она удалилась.

Ответьте, что вы думаете о мнении, что также ересью является переадресовывать человека на 404/

f5_kitten
А как он может на работать?
Как-то может, вы же сами говорите, что он не работает.
 

440hz

php.ru
kruglov
1. знаю я про эти несчастные полкило. если мой 404 меньше, то я должен полагаться на IE? Пошел он нафиг.
2. Я отдаю не 200, как вы пишете, а 302. Суть разные вещи.
3. Большинству юзеров наплевать что там у него в строке адреса высвечивается. Ему важно что на странице.
4. Хотите отдавать сразу 404 - кто ж против? Для того 404 и сделана.
5. согласен, что редиректить на каталог ересь. будем исправлять, по случаю.
 
Сверху