Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Статус 404
 
 автор: mihdan   (18.07.2006 в 11:16)   письмо автору
 
 

Установлен Апач 1,8 есть сайт http://www.test.ru, при обращении по адресу http://www.test.ru/foo (foo-несуществующая страница) как полагается отдается заголовок 404, но при обращении по адресу http://www.test.ru/bar/foo (bar-существующая страница, foo-несуществующая) отдается 200, с выводом страницы http://www.test.ru/bar, в чем причина,

Заранее благодарен за ответ
Михаил

   
 
 автор: Snorri   (18.07.2006 в 11:22)   письмо автору
 
   для: mihdan   (18.07.2006 в 11:16)
 

Здравствуйте.
может mod_rewrite?
это команды Apache переписывать адреса, например:
test.ru/bar/(.*) заменить на test.ru/bar/
нет ли у вас в директории /bar/ файла .htaccess?

   
 
 автор: mihdan   (18.07.2006 в 17:16)   письмо автору
 
   для: Snorri   (18.07.2006 в 11:22)
 

Файла нет, а как с помощью реврайта, подробнее пожалуйчта

   
 
 автор: mihdan   (18.07.2006 в 18:03)   письмо автору
 
   для: Snorri   (18.07.2006 в 11:22)
 

Через реврай получаем заголовок 302(перемещен), нужно 404. Нельзя ли в реврайте прописать, чтобы при переходе на новый адрес отсылался статус 404? Долго ждал ответ, вот сам случайным образом нашел ответ(правда сайт на хостинге упал раз пять)
Идеально простое решение:

Вначале прописал вот так

RewriteRule ^(.*)\.htm/(.*)$ /$1\.htm [R=301,L]

Заработало, но стал отдаваться статус 302(302), тогда методом научного тыка было получено новое и простое выражение.

ErrorDocument /404.php
RewriteRule ^(.*)\.htm/(.*)$ ErrorDocument

т.е. пернаправление на константу ErrorDocument. Файл 404.php был следующего содержания:

<?
header
("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");
// ...............................................................
echo "<h2>Ошибка 404 документ не найден</h2>";
?>

Пример можете увидеть на сайте "подопытном" по адресу http://avia.interair.ru

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования