<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Генерация cgi-скриптом ошибки 404 для поискового робота</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/6423.html</link>
    <description>Задача такая.&lt;br&gt;&lt;br&gt;Имеется cgi-скрипт вида /cgi-bin/index.cgi?page=pagename . Получая различные значения&lt;br&gt;параметра &quot;page&quot; скрипт генерирует различный контент (не суть важно). Нужно&lt;br&gt;сделать так чтобы при получении некорректного значение &quot;page&quot; скрипт генерировал ошибку&lt;br&gt;Error 404 (указанный url не существует). Понятно, что сообщить об этом пользователю просто - достаточно вывести на экран средствами скрипта соответствующий текст  &lt;br&gt;&quot;Error 404&quot; и пользователь поймет, что url ошибочный.&lt;br&gt;&lt;br&gt;НО!  Как быть если страницу пытается сканировать поисковый робот? Допустим я решил убрать с сайта страницу соответствующую определенному значению &quot;page&quot; и выведу вместо нее страницу с сообщением об 404-ошибке. При этом мне нужно чтобы поисковый робот понял, что такой страницы больше нет и перестал ее индексировать.&lt;br&gt;&lt;br&gt;Но если скрипт выдаст вместо текста страницы сообщение об 404-ошибке то как &lt;br&gt;поисковый робот узнает что это ОШИБКА? Ведь для него это будет выглядеть что &lt;br&gt;скрипт по прежнему нормально работает а на странице про</description>

<item>
    <title>Генерация cgi-скриптом ошибки 404 для поискового робота (XAnder)</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/6423.html#5</link>
    <pubDate>Fri, 03 Jul 2009 05:01:30 GMT</pubDate>
    <description>&amp;gt;апач очень удивится увидев такой заголовок и порадует клиента  500 &lt;br&gt;&amp;gt;internal server error. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Для cgi скриптов предусмотрен заголовок Status&lt;br&gt;&lt;br&gt;Хм... Вы правы. Сейчас проверил на сервере своего хостера - чистый CGI действительно вываливает 500. Это на &quot;домашнем&quot; Апаче у меня mod_perl стоит и &quot;HTTP/1.1 200 OK&quot; кушает и не давится. В общем случае лучше выдавать заголовок Status.&lt;br&gt;</description>
</item>

<item>
    <title>Генерация cgi-скриптом ошибки 404 для поискового робота (angra)</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/6423.html#4</link>
    <pubDate>Thu, 02 Jul 2009 15:58:34 GMT</pubDate>
    <description>Вот только вы похоже забыли, что речь идет о cgi скрипте, а не о написании web сервера. Так что такой способ не канает, апач очень удивится увидев такой заголовок и порадует клиента  500 internal server error. &lt;br&gt;&lt;br&gt;Для cgi скриптов предусмотрен заголовок Status, например так:&lt;br&gt;print &quot;Status: 404 Not Found&#092;n&quot;;&lt;br&gt;print &quot;Content-Type: text/html&#092;n&#092;nSorry&quot;;&lt;br&gt;</description>
</item>

<item>
    <title>Генерация cgi-скриптом ошибки 404 для поискового робота (XAnder)</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/6423.html#3</link>
    <pubDate>Thu, 02 Jul 2009 12:07:28 GMT</pubDate>
    <description>&amp;gt;Это правильно? &lt;br&gt;&lt;br&gt;Это неправильно.&lt;br&gt;&lt;br&gt;Признайтесь, вы не читали RFC 2068. Так что процитирую:&lt;br&gt;&lt;br&gt;6.1 Status-Line&lt;br&gt;&lt;br&gt;   The first line of a Response message is the Status-Line, consisting&lt;br&gt;   of the protocol version followed by a numeric status code and its&lt;br&gt;   associated textual phrase, with each element separated by SP&lt;br&gt;   characters.  No CR or LF is allowed except in the final CRLF&lt;br&gt;   sequence.&lt;br&gt;&lt;br&gt;       Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF&lt;br&gt;&lt;br&gt;То есть что-то типа:&lt;br&gt;&lt;br&gt;   HTTP/1.1 200 OK&lt;br&gt;&lt;br&gt;или&lt;br&gt;&lt;br&gt;   HTTP/1.1 404 Not Found&lt;br&gt;&lt;br&gt;Если интересны подробности, читайте. Останутся вопросы - задавайте.&lt;br&gt;</description>
</item>

<item>
    <title>Генерация cgi-скриптом ошибки 404 для поискового робота (alexander0203)</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/6423.html#2</link>
    <pubDate>Thu, 02 Jul 2009 06:50:10 GMT</pubDate>
    <description>Т.е. если я правильно понял, при отображении существующей страницы&lt;br&gt;скрипт должен например печатать заголовок:&lt;br&gt;&lt;br&gt;print &apos;Content-Type: text/html; charset=windows-1251; Status: 200 OK &#092;n&#092;n&apos;;&lt;br&gt;&lt;br&gt;а при отображении несуществующей:&lt;br&gt;&lt;br&gt;print &apos;Content-Type: text/html; charset=windows-1251; Status: 404 Not found &#092;n&#092;n&apos;;&lt;br&gt;&lt;br&gt;Это правильно?&lt;br&gt;</description>
</item>

<item>
    <title>Генерация cgi-скриптом ошибки 404 для поискового робота (XAnder)</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/6423.html#1</link>
    <pubDate>Thu, 02 Jul 2009 06:21:06 GMT</pubDate>
    <description>В первой же строке ответа HTTP-сервера должен быть код статуса (см. RFC 2068). В норме - 200, Not Found - 404. Этот код должен возвращать ваш же скрипт. Так что сделайте так, чтобы он при некоторых условиях возвращал 404 и все дела.&lt;br&gt;&lt;br&gt;А писать пользователю Error 404, при этом возвращая статус 200 - это гм... не честно.&lt;br&gt;</description>
</item>

</channel>
</rss>
