Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 404 no found ? 
:(
    Опции темы
comhunt
Дата 26.2.2010, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



В корне сайта лежит файл .htaccess
Внутри него задана страница для ошибки - 404

ErrorDocument 404 /sitemap.html

Делаю два запроса на заведомо несуществующую страницу:
1. http://www.site.ru/cgi-bin/index.cgi?page=weqweq123123qweqwe
2. http://www.site.ru/weqweq123123qweqwe.html

В случае (1) выдает заголовок:
HTTP/1.1 404 Not Found
Server: nginx/0.7.65
Date: Fri, 26 Feb 2010 12:47:16 GMT
Content-Type: text/html; charset=windows-1251
Connection: keep-alive

И переход на страницу sitemap.html НЕ срабатывает

В случае (2) выдает заголовок:
HTTP/1.1 404 Not Found
Server: nginx/0.7.65
Date: Fri, 26 Feb 2010 12:40:40 GMT
Content-Type: text/html; charset=windows-1251
Connection: keep-alive
Last-Modified: Fri, 26 Feb 2010 12:00:01 GMT
ETag: "d13193-c3c2-4807fa39cb240"
Accept-Ranges: bytes
Content-Length: 50114

И переход на страницу sitemap.html срабатывает

Что я не так делаю при формировании заголовка в случае (1) что не происходит редирект на sitemap.html

Внутри каталога /cgi-bin/ файла .htaccess нет
?



PM MAIL   Вверх
Nigel
Дата 26.2.2010, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: 7
Всего: 19



В первом случае вы скриптом посылаете заголовки, во втором сервер, не найдя указанный урл, включает обработчик.
PM MAIL   Вверх
comhunt
Дата 27.2.2010, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



А каким образом можно послать заголовок скриптом чтобы он сначала выдал код 404 а потом сделал редирект?

Каким образом должен выглядеть такой сложный заголовок?

print qq(Content-type: text/html; charset=windows-1251\n
Status: 404 Not Found\n
Status: 301 Moved Permanently\nLocation: www.newsite.ru\n
\n
);

На сколько я понимаю - такое не сработает?
PM MAIL   Вверх
Nigel
Дата 1.3.2010, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: 7
Всего: 19



Указывая 404, вы можете выводить любой текст на странице. Подключите просто нужный файл.
PM MAIL   Вверх
comhunt
Дата 2.3.2010, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



>Подключите просто нужный файл.

Каким образом можно подключать файл? Средствами .htaccess или как-то еще?

Вот эта конструкция внутри .htaccess файла разве не подключает файл 
ErrorDocument 404 /sitemap.html

?


Это сообщение отредактировал(а) comhunt - 2.3.2010, 15:06
PM MAIL   Вверх
comhunt
Дата 4.3.2010, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



Все разобрался...

Это сообщение отредактировал(а) comhunt - 5.3.2010, 00:00
PM MAIL   Вверх
1000000dollars
Дата 5.3.2010, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 6.10.2007

Репутация: 2
Всего: 8



Цитата(comhunt @  4.3.2010,  13:40 Найти цитируемый пост)
Почему  запись ErrorDocument 404 /sitemap.html внутри .htaccess не обрабатывает ситуацию, при которой PERL-скриптом посылается заголовок 404.


Давайте посмотрим что происходит:
0) апачу приходит запрос на получение документа /cgi-bin/index.cgi для хоста www.site.ru
1) апач прочитал .htaccess  и знает, что если документа не найдёт надо отдать клиенту страничку /sitemap.html
2) апач находит /cgi-bin/index.cgi и поэтому отдавать страничку /sitemap.html не должен.
3) апач понимает, что это CGI, поэтому запускает его и тупо (без обработки) отдаёт пользователю всё, что генерируется этим CGI.
4) CGI сказала вернуть клиенту заголовок с кодом 404, что апач и выполняет.

Чтобы скрипт показывал страничку /sitemap.html я бы попробовал сделать следующее:
внутри CGI вернул заголовок 404 и контент из файла /sitemap.html.
PM MAIL   Вверх
comhunt
Дата 18.3.2010, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



Пробую внутри CGI вернуть заголовок 
Content-type: text/html; charset=windows-1251\n
Status: 404 Not Found\n\n

Далее вывожу
print "123";

Но браузер показывает страница не доступна.

В чем проблема не пойму.



Это сообщение отредактировал(а) comhunt - 18.3.2010, 21:04
PM MAIL   Вверх
1000000dollars
Дата 19.3.2010, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 6.10.2007

Репутация: 2
Всего: 8



Только что проверил такой скрипт:

Код

<?php
header("HTTP/1.0 404 Not Found");
print "Nothing here";
?>


В браузере строчка выводится.
Пытаюсь забрать страничку wget'ом:
Код

bash-3.2$ wget http://my.domain.ru/test/index.php
--2010-03-19 01:56:07--  http://my.domain.ru/test/index.php
Resolving my.domain.ru... x.x.x.53
Connecting to my.domain.ru|x.x.x.53|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2010-03-19 01:56:08 ERROR 404: Not Found.
bash-3.2$

При этом в логах апача:
Код

x.x.x.2 - - [19/Mar/2010:01:55:03 +0300] "GET /test/index.php HTTP/1.0" 404 12 "-" "Wget/1.11.4"


То есть апач отдал 404 заголовок и текст, который я захотел.

Смотри ошибки в коде CGI: пробелы, переносы строк и так далее... Других идей у меня нет. Удачи! smile

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0647 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.