URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3213
[ Назад ]

Исходное сообщение
"Как из скрипта передать в браузер '404 not found' ?"

Отправлено Aleg , 05-Апр-05 11:37 
Спасибо

Содержание

Сообщения в этом обсуждении
"Как из скрипта передать в браузер '404 not found' ?"
Отправлено dev , 05-Апр-05 12:03 
>Спасибо

http://httpd.apache.org/docs-2.0/mod/mod_asis.html


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено Aleg , 05-Апр-05 12:29 
>>Спасибо
>
>http://httpd.apache.org/docs-2.0/mod/mod_asis.html

А в файле .asis что написать?

Типа:

Status: 401 Not found
Location: http://fiat.rags.ru
Content-type: text/html

<HTML>
<HEAD>
<TITLE>Облом</TITLE>
</HEAD>
<BODY>
<H4>Ошиблись адресом.</H4>
</BODY>
</HTML>


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено dev , 05-Апр-05 16:29 
>>>Спасибо
>>
>>http://httpd.apache.org/docs-2.0/mod/mod_asis.html
>
>А в файле .asis что написать?
>

===================================
Status: 404 Not found
Content-type: text/html

<HTML>
<HEAD>
<TITLE>Облом</TITLE>
</HEAD>
<BODY>
<H4>Ошиблись адресом.</H4>
</BODY>
</HTML>
===================================

(найди два отличия :)
Кстати, это может быть и скрипт, никто не мешает.


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено Aleg , 05-Апр-05 17:23 
>>>>Спасибо
>>>
>>>http://httpd.apache.org/docs-2.0/mod/mod_asis.html
>>
>>А в файле .asis что написать?
>>
>
>===================================
>Status: 404 Not found
>Content-type: text/html
>
><HTML>
><HEAD>
><TITLE>Облом</TITLE>
></HEAD>
><BODY>
><H4>Ошиблись адресом.</H4>
></BODY>
></HTML>
>===================================
>
>(найди два отличия :)
>Кстати, это может быть и скрипт, никто не мешает.

Пишет, как будто, действительно нет такого файла. :) А моё "Ошиблись адресом не выводит". А когда ставлю "401 Not Found" - выводит.


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено dev , 05-Апр-05 18:59 
>Пишет, как будто, действительно нет такого файла. :) А моё "Ошиблись адресом
>не выводит". А когда ставлю "401 Not Found" - выводит.

В браузере у себя отключи интерпретацию ошибок - выведет.
"Файл не найден" - это именно 404. Если тебе на надо соотв. стандарту, то можно не заморачиваться и посылать обычные 200.


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено Aleg , 06-Апр-05 09:12 
>>Пишет, как будто, действительно нет такого файла. :) А моё "Ошиблись адресом
>>не выводит". А когда ставлю "401 Not Found" - выводит.
>
>В браузере у себя отключи интерпретацию ошибок - выведет.
>"Файл не найден" - это именно 404. Если тебе на надо соотв.
>стандарту, то можно не заморачиваться и посылать обычные 200.

А как для поисковика Яндекс, например, надо?


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено PoizOn , 06-Апр-05 11:40 
>>>Пишет, как будто, действительно нет такого файла. :) А моё "Ошиблись адресом
>>>не выводит". А когда ставлю "401 Not Found" - выводит.
>>
>>В браузере у себя отключи интерпретацию ошибок - выведет.
>>"Файл не найден" - это именно 404. Если тебе на надо соотв.
>>стандарту, то можно не заморачиваться и посылать обычные 200.
>
>А как для поисковика Яндекс, например, надо?
Для поисковика пропиши себе в robots.txt адрес файла



"Как из скрипта передать в браузер '404 not found' ?"
Отправлено Aleg , 06-Апр-05 13:13 
>>>>Пишет, как будто, действительно нет такого файла. :) А моё "Ошиблись адресом
>>>>не выводит". А когда ставлю "401 Not Found" - выводит.
>>>
>>>В браузере у себя отключи интерпретацию ошибок - выведет.
>>>"Файл не найден" - это именно 404. Если тебе на надо соотв.
>>>стандарту, то можно не заморачиваться и посылать обычные 200.
>>
>>А как для поисковика Яндекс, например, надо?
>Для поисковика пропиши себе в robots.txt адрес файла

Про robot.txt я в курсах.

У меня динамически выводимые страницы и в процессе доработки сайта УРЛы страничек могут менятся (добавляются новые параметры, передаваемые в строке, и т.д...). При обращении по устаревшим УРЛам выдаётся шапка сайта и низ, то есть, как бы "страница существует". Это засоряет базу поисковика и не приветствуется. Хочу на запросы по устаревшим УРЛам выдавать "404 запрошенная страница не была найдена...", желательно со своим собственным оформлением по стилю сайта. Вот.


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено PoizOn , 06-Апр-05 14:25 
>>>>>Пишет, как будто, действительно нет такого файла. :) А моё "Ошиблись адресом
>>>>>не выводит". А когда ставлю "401 Not Found" - выводит.
>>>>
>>>>В браузере у себя отключи интерпретацию ошибок - выведет.
>>>>"Файл не найден" - это именно 404. Если тебе на надо соотв.
>>>>стандарту, то можно не заморачиваться и посылать обычные 200.
>>>
>>>А как для поисковика Яндекс, например, надо?
>>Для поисковика пропиши себе в robots.txt адрес файла
>
>Про robot.txt я в курсах.
>
>У меня динамически выводимые страницы и в процессе доработки сайта УРЛы страничек
>могут менятся (добавляются новые параметры, передаваемые в строке, и т.д...). При
>обращении по устаревшим УРЛам выдаётся шапка сайта и низ, то есть,
>как бы "страница существует". Это засоряет базу поисковика и не приветствуется.
>Хочу на запросы по устаревшим УРЛам выдавать "404 запрошенная страница не
>была найдена...", желательно со своим собственным оформлением по стилю сайта. Вот.
>
Тогда так:
print "HTTP/1.1 404 Found\n";
print "Location: $url\n\n";# перенаправляем на index.htm к примеру


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено Aleg , 06-Апр-05 14:51 
>Тогда так:
>print "HTTP/1.1 404 Found\n";
>print "Location: $url\n\n";# перенаправляем на index.htm к примеру

print "HTTP/1.1 404 Found\n";
или
print "HTTP/1.1 404 Not Found\n";


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено PoizOn , 06-Апр-05 15:03 
>>Тогда так:
>>print "HTTP/1.1 404 Found\n";
>>print "Location: $url\n\n";# перенаправляем на index.htm к примеру
>
Да точно - ошибся:
print "HTTP/1.1 404 Not Found\n";



"Как из скрипта передать в браузер '404 not found' ?"
Отправлено Aleg , 06-Апр-05 16:37 
>>>Тогда так:
>>>print "HTTP/1.1 404 Not Found\n";
>>>print "Location: $url\n\n";# перенаправляем на index.htm к примеру

Не перенаправляет.
Просто пишет в белой странице: "HTTP/1.1 404 Not Found Location: /index.htm".
В заголовке странице УРЛ, по которому была попытка обратится.


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено dev , 06-Апр-05 17:34 
>>>>print "HTTP/1.1 404 Not Found\n";
>>>>print "Location: $url\n\n";# перенаправляем на index.htm к примеру

>Не перенаправляет.

И не будет :)
Location имеет смысл только для 3хх ошибок (редирект).
404 - это просто "фиг вам".

Ты хочешь одновременно добиться понятности для роботов и красивости для людей - не получится, на этом пути тебя поджидает IE, который не хуже робота интерпретирует 404 ошибку.
Пути решения проблемы есть, но все они корявые. Лучше всего по стандарту - 404. Если эта страничка существовала (и ты об этом помнишь), а потом совсем исчезла - 410. Если же ты даже знаешь куда она переместилась - 301 и новый Location.
В общем, смотри RFC2616.


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено Aleg , 06-Апр-05 17:55 
>>>>>print "HTTP/1.1 404 Not Found\n";
>>>>>print "Location: $url\n\n";# перенаправляем на index.htm к примеру
>
>>Не перенаправляет.
>
>И не будет :)
>Location имеет смысл только для 3хх ошибок (редирект).
>404 - это просто "фиг вам".
>
>Ты хочешь одновременно добиться понятности для роботов и красивости для людей -
>не получится, на этом пути тебя поджидает IE, который не хуже
>робота интерпретирует 404 ошибку.
>Пути решения проблемы есть, но все они корявые. Лучше всего по стандарту
>- 404. Если эта страничка существовала (и ты об этом помнишь),
>а потом совсем исчезла - 410. Если же ты даже знаешь
>куда она переместилась - 301 и новый Location.
>В общем, смотри RFC2616.

А будут ли поисковики следовать 301 Location и подправлять свою базу?
Допустим, я всё несуществующее буду перекидывать "301 Location: index.html"
Будет поисковик заменять эти ссылки на index.html и, в конечном счёте (поскольку index.html у него уже есть), удалять из своей базы?


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено Aleg , 06-Апр-05 18:22 
>>>>>print "HTTP/1.1 404 Not Found\n";
>>>>>print "Location: $url\n\n";# перенаправляем на index.htm к примеру
>
>>Не перенаправляет.
>
>И не будет :)
>Location имеет смысл только для 3хх ошибок (редирект).
>404 - это просто "фиг вам".
>
>Ты хочешь одновременно добиться понятности для роботов и красивости для людей -
>не получится, на этом пути тебя поджидает IE, который не хуже
>робота интерпретирует 404 ошибку.
>Пути решения проблемы есть, но все они корявые. Лучше всего по стандарту
>- 404. Если эта страничка существовала (и ты об этом помнишь),
>а потом совсем исчезла - 410. Если же ты даже знаешь
>куда она переместилась - 301 и новый Location.
>В общем, смотри RFC2616.

У меня с 301 кстати не переводит...


"Как из скрипта передать в браузер '404 not found' ?"
Отправлено Aleg , 06-Апр-05 18:32 
Вообщем я слабал файлик /not_found.asis
========begin===========
Status: 404 Not found
Content-type: text/html

<HTML>
<HEAD>
<TITLE>Облом</TITLE>
</HEAD>
<BODY>
<H4>Ошиблись адресом.</H4>
</BODY>
</HTML>
==========end===========

и буду подсовывать его.
Посмотрим...