404 ошибка

  • Автор темы Дурной
  • Дата начала

Дурной

Guest
404 ошибка

Помогите пожалуйста:

У меня в файле .htaccess есть такие строчки

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) http://......./~topfortu/index.php
RewriteRule ^(.*)dir-catalogue/(.*)$ /findout.php [L]
ErrorDocument 404 /404.shtml

а ошибка 404 страницу /404.shtml не находит
что делать? Если можно пример, так как я не программер.
 

Дурной

Guest
Попробовал, оно опять не хотит...

-~{}~ 18.08.05 15:31:

у меня в индексе есть еще такие вот строчки в конце, может они на что-то влияют?:
else
{
//header("location:".$siteurl."/404");
//$p = "404";
die("404");
}
 

Дурной

Guest
набираю ошибочный адрес, а оно вместо моей странички что я создал (404.shtml в корневике) кидает на дефолтную страницу
 
А какой запрос-то? Ты уверен, что он удовлетворяет RewriteCond? Если нет, то он, разумеется, идет на index.php
 

Дурной

Guest
шоб я так жил...

Например у меня страница
http://*.com/articles/311.html
она прекрасно отображается
а набрать ошибочный адрес - например http://*.сom/articles/411.html
то переход на 404 страницу не происходит, но вверху хедера пишет

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in ///template.php on line 483

а если просто адесс ошибочно набирается
(типа *.com/1456.html )
то идет переход на дефолтную страницу

-~{}~ 18.08.05 15:59:

а вот эти линии в template.php :
482:if ($leftcolumn==1 && isset($groups_list) && count($groups_list)>0) {
483: $q = mysql_result(mysql_query("select count(*) from groups where id_father=".$groups_list[count($groups_list)-1]),0,0);
484: if ($q==0 && isset($groups_list[count($groups_list)-2]) ) $id_father = $groups_list[count($groups_list)-2];
 
Что такое дефолтная страница? То, что IE показывает на белом фоне с заголовком "The page cannot be found"? Тогда посмотри еще на длину самой страницы 404.shtml. Если она меньше 512 байт, а в IE стоит "Show frendly HTTP error messages", то он всегда ее будет заменять твою страницу на свою дефолтную.
 
Фу... Ну наконец-то ясное объяснение происходящего ;)
Поставь include("404.shtml"); вместо echo "404";

-~{}~ 18.08.05 17:00:

Т.е. я хотел сказать вместо die("404");
А после просто die; поставь
 
А это уже надо в этом "темплате" проверять переданный ID статьи на правильность. Если неверный (нет такого), то опять же инклудить 404
 

Дурной

Guest
Все, понял, спасибо огроменное, .... для одного дня мне хватит :) ...
 
Сверху