Какой статус перенаправления HTTP я должен использовать для связи за пределами сайта? - PullRequest
1 голос
/ 23 октября 2009

При случайном просмотре моего сайта через Google я заметил, что он показывает удаленные перенаправления в виде локальных файлов. Теперь это может быть как хорошо, так и плохо, но мне интересно, как я могу это исправить, чтобы этого не произошло?

В настоящее время я использую PHP и header('Location: ..., который отправляет редирект 302. Просматривая список кодов состояния HTTP , я бы предположил, что для перенаправления за пределы сайта я должен использовать перенаправления 303 Кто-нибудь может мне здесь помочь, и либо подтвердить / опровергнуть это, либо сказать, что я должен делать вместо этого?

Очевидно, что из-за того, что я не могу сказать Google переиндексировать мой сайт по команде, есть проблемы с возможностью проверить это сам ...

Ответы [ 2 ]

1 голос
/ 23 октября 2009

Код состояния 303 предназначен для использования в ответ на запрос POST для перенаправления на другой ресурс:

Этот метод существует главным образом для того, чтобы выходные данные активированного POST-скрипта могли перенаправить пользовательский агент на выбранный ресурс.

В вашем случае вы должны использовать код состояния 301 для постоянного перенаправления:

Запрошенному ресурсу был назначен новый постоянный URI, и любые будущие ссылки на этот ресурс ДОЛЖНЫ использовать один из возвращенных URI.

Или вы используете временное перенаправление ( 302 / 307 ) и говорите поисковым системам не индексировать эти документы.

1 голос
/ 23 октября 2009
Note: Many pre-HTTP/1.1 user agents do not understand the 303
status. When interoperability with such clients is a concern, the
302 status code may be used instead, since most user agents react
to a 302 response as described here for 303.

Я не знаю, какие существуют пользовательские агенты до HTTP / 1.1, так что ... В зависимости от того, что вы собираетесь, я бы использовал 301 (постоянный) или 307 (временный). 301 скажет Google, что он будет вести себя так, как если бы вы ссылались на перенаправленный сайт напрямую.

303 выглядит так, как будто оно предназначено для перенаправления, особенно после отправки форм.

редактирование:

хотя ваш вопрос «Какой статус перенаправления HTTP я должен использовать для связи вне сайта?» - Как насчет прямой связи вне сайта? (что, я думаю, не работает, если вы используете форму для создания ссылок, в этом случае вы будете использовать код состояния 303)

...