|
|
|
| Установлен Апач 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, в чем причина,
Заранее благодарен за ответ
Михаил | |
|
|
|
|
|
|
|
для: mihdan
(18.07.2006 в 11:16)
| | Здравствуйте.
может mod_rewrite?
это команды Apache переписывать адреса, например:
test.ru/bar/(.*) заменить на test.ru/bar/
нет ли у вас в директории /bar/ файла .htaccess? | |
|
|
|
|
|
|
|
для: Snorri
(18.07.2006 в 11:22)
| | Файла нет, а как с помощью реврайта, подробнее пожалуйчта | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|