виды, особенности, когда использовать > Q-SEO
Все что нужно знать о кодах ответа 3хх
Все прекрасно знакомы с кодами ответа 301 и 302 — это HTTP коды перенаправления. На самом деле они далеко не единственные и существует еще несколько различных типов редиректов, многие из которых мы, как SEO-специалисты, не используем. Хотя иногда, сканируя сайт, можно увидеть, что некоторые страницы отдают код ответа 307. И вот вопрос — что с ними делать? Нужны ли они нам вообще?
Собственно, сначала нужно разобраться в теории — для чего созданы различные типы редиректов и когда они используются.
Напомним, что переадресация URL (редирект) — это функция сервера, которая отправляет клиента и поисковую систему с одного URL-адреса на другой. Чаще всего редиректы автоматические и классифицируются с помощью кодов ответа, определенных в протоколе HTTP.
Какие бывают коды редиректов:
- HTTP 300 — Multiple Choice (Множественный выбор)
- HTTP 301 – Moved Permanently (Навсегда перемещен)
- HTTP 302 – Moved Temporarily, Found (Временно перемещен)
- HTTP 303 – See Other (Просмотр других ресурсов)
- HTTP 304 – Not Modified (Не модифицировано)
- HTTP 305 – Use Proxy (Использовать прокси)
- HTTP 306 – Switch Proxy (Зарезервирован)
- HTTP 307 – Temporary Redirect (Временный редирект)
- HTTP 308 – Permanent Redirect (Перенаправление на постоянной основе)
Забегая наперед: в статье будут использоваться термины GET, POST, HEAD запросы. Поэтому тем, кто, прочитав это, напрягся и начал чувствовать себя неуверенно — посмотрите справку в конце этой статьи.
HTTP 300 — Multiple Choice (Множественный выбор)
300 код ответа возвращается, когда запрашиваемый ресурс (страница) имеет более одного «пункта назначения» со своим уникальным идентификатором. То есть предоставляется информация об альтернативах, чтобы пользователь (или браузер) мог выбрать предпочтительный конечный ресурс, перенаправив свой запрос на один или несколько из этих идентификаторов.
Обычно разрешается максимум 5 адресов. Браузер может сделать выбор из этого списка автоматически, если он понимает предоставленный тип носителя.
Когда дают право выбрать
Представьте, что это страница «Википедия:Неоднозначность», когда Вики предлагает перечень ссылок, чтобы вы могли найти нужный ответ на свой вопрос.
Когда используют
Используют, чтобы браузер или пользователь имели право выбирать наиболее подходящую страницу для своих потребностей. К примеру, так можно представить опции разных форматов файла, несколько языковых версий. В целом, это довольно редкое явление и имеет мало общего с вашим SEO.
HTTP 301 – Moved Permanently (Навсегда перемещен)
Этот статус указывает на то, что ресурс навсегда изменил URL. То есть для запрашиваемой страницы был установлен новый адрес и последующие обращения к ней должны осуществляться по заданному новому URI.
Со временем поисковая система обновит свой индекс, заменив старый адрес страницы на новый. Браузеры и другие типы клиентов закэшируют новый URL-адрес и будут автоматически следовать редиректу напрямую, не проверяя оригинал для последующих запросов. Сохраненные закладки также обычно обновляются.
301 редирект может быть задан в файле htaccess, index.php или httpd.conf на сервере или в системе управления контентом. Например, есть несколько плагинов WordPress для управления 301 редиректами.
При изменении структуры URL-адресов на сайте очень важно настроить 301 редирект для каждого нового адреса. Невыполнение этого требования приведет к снижению доверия к сайту поисковой системы и пользователей.
Когда используют
Часто используют 301 редирект, чтобы устранить дубли страниц, перенаправить робота и пользователя с неактуальной страницы или имеющей код ответа сервера 404. Редиректы с кодом ответа 301 настраивают, когда меняется структура URL-адреса после обновления дизайна или переезда; при настройке главного зеркала сайта.
Как настроить
Все способы настройки 301 редиректа с примерами смотрите в нашей статье Как настроить 301 редирект
Минутка философии…
301 редирект должен быть постоянным, но насколько постоянным может быть постоянство?
Представитель Google Джон Мюллер как-то дал ответ по поводу длительности 301 редиректа: «… Это может быть год, а в идеале даже больше года, так что мы (Google) действительно могли быть уверены, что все, что указывало на старые URL, указывает на новые URL».
Такая философия нам ясна, продолжаем.
HTTP 302 – Moved Temporarily, Found (Временно перемещен)
Код ответа 302 используется для временных перенаправлений. Поскольку конечный адрес может быть изменен в любой момент, браузер должен продолжать использовать старый URI-адрес и дальше.
По поводу PageRank. Официальная версия Google – любой тип 3xx переадресации (в том числе и 302) не теряет PageRank. Тем не менее, это не значит, что можно не переживать, если у вас настроен 302 редирект для постоянного перенаправления.
Google не заменяет старый URL на новый в своем индексе, но если он поймет, что 302 редирект был настроен по ошибке вместо 301, то переиндексирует URL вам на радость.
Безусловно, для этого нужно некоторое время — если это вообще случится. Вероятность этого такая же, как и того, что Google не будет индексировать закрытые в robots.txt страницы, но это уже совсем другая (печальная) история. Так вот, поисковая система, скорее всего, будет ранжировать такой URL-адрес ниже, чем если бы Вы настроили постоянное перенаправление.
Когда используют
302 редирект не настраивают для адресов, которые изменились навсегда. Такой редирект используют, чтобы исходная страница оставалась в индексе или, если посадочная часто меняется. Чаще всего 302 редирект настраивают когда изменяются URL-адреса во время обслуживания сайта, чтобы контент по-прежнему был доступен по другому URL-адресу.
Также мы слышали, что существует такая практика: настроить 302 редирект для товара, которого нет в наличии. Мы не рекомендуем так делать. Лучше, указать на товаре, что сейчас его нет в наличии и добавить блок с похожими или интересными для пользователя товарами на этой странице:
На что стоит обратить внимание
302 лучше настраивать для временного перенаправления адреса, если будет использоваться GET и HEAD метод передачи запроса, так как работу 302 редиректа с другими запросами (POST, PUT) сложно спрогнозировать.
В случае, если используются запросы отличные от GET/HEAD, рекомендуется настраивать 307 редирект (о нем читайте ниже).
HTTP 303 – See Other (Просмотр других ресурсов)
На практике код ответа 303 похож на 302, но он не обозначает перемещение запрашиваемого адреса.
303 код ответа сервера указывает, что запрашиваемый ресурс можно найти по другому URL. То есть — браузеру только предоставляется адрес. Этот конечный адрес не кэшируется.
Когда используют
303 редирект настраивают в случае, когда на определенный запрос браузера нет подходящего ответа (страницы), но можно предложить более-менее удовлетворительный.
С 303 редиректом раньше отлично были знакомы разработчики, так как после POST отправки формы на сайте необходимо было настроить переадресацию, чтобы избежать повторной отправки формы после возможной перезагрузки страницы пользователем.
На что стоит обратить внимание
Некоторые (устаревшие) клиенты не интерпретируют статус 303. В таких случаях применяется 302 редирект.
HTTP 304 – Not Modified (Не модифицировано)
Браузеры могут отправлять запрос, который спрашивает, был ли ресурс изменен после определенного времени. Для внесения информации о последнем редактировании веб-страницы созданы заголовки Last-Modified и If-Modified-Since.
Браузер отправляет запрос, если ранее он уже загружал страницу и закэшировал ее. Если содержимое страницы было изменено с того времени как то сервер даст ответ со статусом 200 OK. Или, если ресурс не был изменен, сервер отправит статус 304 Not Modified – произойдет переадресация на сохраненную копию страницы.
Когда используется
Когда ответ сервера сигнализирует, что страница не изменялась со времени создания последнего кеша. То есть браузеру нет смысла повторно проверять страницу.
SEO-специалисты используют If-Modified-Since и Last-Modified.
Основная цель использования заголовков If-Modified-Since и Last-Modified состоит в том, чтобы обеспечить эффективное обновление кэшированной информации. Управление кэшем поможет улучшить скорость загрузки страницы, а также улучшить общую производительность веб-сайта и, тем самым, удобство для пользователей.
С точки зрения SEO, контролировать обновление кэша очень важно, потому что так можно улучшить сканирование и индексацию сайта.
Вы же помните, что для каждого сайта есть определенный краулинговый бюджет, и задача оптимизатора состоит в том, чтобы максимально эффективно использовать его.
Проблемы со сканированием, само собой, встречаются на действительно больших сайтах — сканируются страницы, которые вовсе не приоритетные для нас, а до необходимого контента робот может так и не дойти. Например, страница «О нас» может часто сканироваться, потому что на нее стоит ссылка на каждой странице сайта в шапке или в футере. Поэтому робот может считать ее важной, хотя на самом деле это не так.
Настроив If-Modified-Since и Last-Modified, можно показать роботу какие именно страницы есть смысл переобходить, а какие так и остались не измененными.
В целом, ускоряется загрузка страниц для пользователей, снижается нагрузка на сервер, в результатах поиска может отображаться дата последнего обновления содержимого страницы, существенно ускоряется индексация страниц.
HTTP 305 – Use Proxy (Использовать прокси)
Переадресация со статусом 305 происходит, когда запрашиваемый ресурс доступен только через прокси-сервер. При этом адрес прокси указывается в ответе. Ожидается, что веб-браузер повторит запрос через прокси.
Некоторые браузеры (Mozilla, Internet Explorer) обрабатывают этот статус некорректно. Скорее всего, они расценивают небезопасным тот факт, что запрос отправляется серверу не напрямую.
Когда используется
Как было сказано выше, если получить доступ к странице можно только через прокси сервер. Прокси сервер используют для разный целей — начиная от анонимности и заканчивая необходимостью кэшировать содержимое, чтобы ускорить загрузку страницы.
На что стоит обратить внимание
Этот код был проигнорирован многими поисковыми системами и, фактически, заброшен.
HTTP 306 – Switch Proxy (Зарезервирован)
Изначально 306 код ответа сигнализировал, что клиент должен использовать определенный прокси-сервер . Больше он неактуален и просто остается зарезервированным.
HTTP 307 – Temporary Redirect (Временный редирект)
Этот статус был создан, чтобы уточнить 302 редирект.
Код ответа 307 означает, что сейчас запрашиваемый ресурс доступен по другому адресу, но потом все равно вернется на прежний URL. Точно так же, как и с 302, страница не кэшируется, а поисковые системы, вероятнее всего, не будут добавлять в свой индекс новый URL.
Этот код ответа аналогичен 302, за исключением того, что он не позволяет изменить метод запроса с POST на GET.
Когда используют
Настраивают 307 редирект в тех же случаях, что и 302 (смотрите выше). 302 всегда использовался для создания временных перенаправлений, но с появлением HTTP 1.1 код ответа 307 конкретизировал его. Хоть 307 редирект является стандартом HTTP 1.1., он более новый и точный, вовсе необязательно, что этот код ответа широко поддерживается серверами, браузерами или поисковыми системами. До тех пор, пока новый стандарт не станет более распространен, лучше всего указывать 302 редирект.
На что стоит обратить внимание
Чтобы различать две предполагаемые особенности кода ответа 302, создали коды 303 и 307. На практике, ни один из них не используется SEO-специалистами намеренно.
HTTP 308 – Permanent Redirect (Перенаправление на постоянной основе)
Этот код ответа — аналог 301 редиректа с той лишь разницей, что он не позволяет изменить метод запроса с POST на GET. Он точно так же автоматически кэшируется и передает внутренний вес на новую страницу.
Перемещен навсегда
Стоит отметить, что этот код ответа экспериментальный.
Когда используется
Как вы уже догадались, 308 редирект настраивают в тех ситуациях, где мы используем 301 редирект. Также когда необходимо выполнить перенаправление на сайте с большим количеством форм, использующих метод POST. Или, если для повторного запроса требуется метод POST.
Есть и другие случаи использования 308 редиректа. Например, Google Drive перенаправляет с кодом ответа 308, чтобы показать, что была прервана загрузка данных.
Справка
Чтобы понять, какой редирект использовать, нужно немного узнать о том, как работает HTTP. Сейчас придется потерпеть, но потом вы будете великолепны.
HTTP протокол характеризует взаимодействие между двумя компьютерами (клиентом/браузером и сервером) с помощью запросов и ответов. GET, HEAD и POST — это самые распространенные методы запросов, которые помогают браузеру или клиенту «общаться» с сервером.
GET — получение ресурса (страницы). GET-запросы могут кэшироваться. Они остаются в истории браузера, могут быть добавлены в закладки и используются специально для извлечения содержимого страницы (HTML, изображения, JS, CSS).
HEAD — получение информации заголовка. HEAD полностью соответствует GET запросу с разницей, что при запросе HEAD нас не интересует сам ресурс (страница/документ), а только его HEADER и код ответа.
POST — отправка данных на сервер. Конечно, можно отправлять данные на сервер с помощью GET, но использовать POST запросы правильнее. Отправка больших объёмов данных с помощью GET нецелесообразна и имеет ограничения. Запросы POST чаще всего отправляются веб-формами. Вы точно когда-нибудь использовали форму на сайте, которая, когда вы нажимаете кнопку «Назад» или попытки обновить страницу, выдает предупреждение по типу «Все несохраненные данные будут утеряны». Это потому, что это был запрос POST. POST запросы не кэшируются, не сохраняются в истории браузера и не могут быть добавлены в закладки, поскольку они являются набором команд для сервера, а не запросом статического ресурса.
Та-дааааааам, Вы — великолепны.
И, закрывая тему.
Что мы должны использовать?
Работаем мы с такими редиректами: 301, 302, 304, 307, 308. А реально используем 301, 304 и 302. Догадались почему?
Да, потому что 307 и 308 коды ответа сервера еще не полюбились всем браузерам, клиентам и поисковым системам. Поэтому давайте общаться с ними на понятном для них языке.
Комментарии
Комментарии
HTTP коды состояния перенаправления: 300, 301, 302, 303, 304, 305, 306, 307
Привет, читатель блога ZametkiNaPolyah.ru! Продолжим знакомиться с протоколом HTTP в рубрике серверы и протоколы и ее разделе HTTP протокол. Данная публикация будет о HTTP кодах состояния перенаправления. К HTTP кодам перенаправления относятся следующие коды: 300, 301, 302, 303, 304, 305, 306, 307. Напомню, что коды перенаправления говорят клиенту о том, что для успешного завершения запроса необходимо выполнить какое-то действие. Обычно браузеры выполняют такие действия без вмешательства пользователя. В данной записи мы рассмотрим сперва все HTTP коды перенаправления, а затем рассмотрим каждый код в отдельности более подробно.
HTTP коды состояния перенаправления: 300, 301, 302, 303, 304, 305, 306, 307
Общая информации о HTTP кодах перенаправления
Содержание статьи:
- Общая информации о HTTP кодах перенаправления
- HTTP код состояния 300: множественный выбор. HTTP код состояния 301: постоянно перенесен. HTTP код состояния 302: временно перемещен.
- HTTP код состояния 303: смотреть другой ресурс. HTTP код состояния 304: ресурс не модифицирован. HTTP код состояния 305: использовать прокси сервер. HTTP код состояния 307: временное перенаправление
Если вы хотите узнать всё про протокол HTTP, обратитесь к навигации по рубрике HTTP протокол. Да, эти коды состояния, как раз и есть тот самый Redirect 301 или склейка доменов, глупое выражение: Redirect 301 – склейка домена. Автор тоже этим грешил, автор каится и обещает исправиться. Все дело в том, что 301 – это всего лишь, код, который означает, что произошло перенаправление, а вот за склейку доменов отвечает HTTP сервер и его конфигурации, поэтому крайне неправильно говорить этот ваш редирект 301.
Мы немного отвлеклись, давайте перейдем к HTTP кодам состояния перенаправления, все HTTP коды перенаправления начинаются с тройки. Общей чертой HTTP кодов перенаправления является то, что все они сообщают браузеру о том, что для продолжения работы ему необходимо выполнить какие-либо дополнительные действия, обычно браузер выполняет эти действия не спрашивая пользователя.
Для удобства давайте сведем все HTTP коды состояния перенаправления
HTTP ответ | Описание кода состояния перенаправления |
300 Multiple Choices | HTTP код перенаправления 300: множественный выбор HTTP код состояния 300 говорит клиенту о том, что запрошенный ресурс имеет несколько представлений и клиент в праве выбрать одно из предлагаемых представлений. Действует ограничение в пять адресов максимум. |
301 Moved Permanently | HTTP код перенаправления 301: постоянно перемещен |
302 Found | HTTP код перенаправления 302: временно перемещен HTTP код состояния 302 говорит клиенту о том, что запрашиваемый ресурс был временно перемещен на новый адрес. |
303 See Other | HTTP код перенаправления 303: смотри другой HTTP код состояния 303 говорит клиенту о том, что ответ на запрос может быть найден по другому URI (про URI в HTTP найдешь информацию здесь), новый запрос следует выполнять методом GET (про HTTP методы смотри здесь). |
304 Not Modified | HTTP код перенаправления 304: не модифицирован HTTP код состояния 304 говорит клиенту о том, что сервер выполнил условный GET запрос, но документ никак не изменился. |
305 Use Proxy | HTTP код перенаправления 305: используй прокси HTTP код состояния 304 говорит клиенту о том, что запрошенный URL должен быть доступен через прокси, который указан в поле заголовка Location. |
306 Unused | HTTP код перенаправления 306: зарезервировано |
307 Temporary Redirect | HTTP код перенаправления 307: временно перемещен HTTP код состояния 307 говорит клиенту о том, что запрашиваемая страница временно переехала на новый адрес |
Давайте более подробно поговорим про каждый из кодов состояний HTTP сервера класса перенаправления.
HTTP код состояния 300: множественный выбор. HTTP код состояния 301: постоянно перенесен. HTTP код состояния 302: временно перемещен.
HTTP код состояния 300 или код множественного выбора говорит о том, что клиент может выбрать несколько доступных представлений ресурса, но не более пяти. Каждое представление ресурса имеет свое уникальное месторасположения на сервере. Формат, в котором клиент будет получать HTTP объект определяется медиа типом данных (читай про типы данных в HTTP по этой ссылке), указанным в поле заголовка Content-Type. Иногда выбор выполняется автоматически браузером без участия пользователя, но стандарт HTTP протокола не дает никаких критериев, по которым должен происходить автоматический выбор, а так же не имеет никаких требований. Ответы HTTP сервера с кодом состояния 300 по умолчанию являются кэшируемыми, если в заголовках не указано иного.
HTTP код состояния 301 или код состояния постоянного переноса. Код состояния 301 сообщает браузеру о том, что для ресурса, к которому он обратился, назначен новый URI, и все обращения к этому ресурсу следует выполнять по новому URI, указанному в ответе HTTP сервера. Ответы сервера с кодом 301 являются кэшируемыми. В тех случаях, когда клиент использовал HTTP запрос с методом отличным от GET или HEAD, браузер спрашивает у пользователя, что делать дальше: переходить по новому URI или не надо.
HTTP код состояния 302 или код временного перемещения ресурса. Код состояния 302 говорит о том, что на данный момент ресурс временно доступен по другому URI и сообщает новый URI ресурса. Кэшируемость ответов сервера с кодом 302 зависит только от значений полей заголовка Cache-Control или Expires. В тех случаях, когда клиент использовал запрос с методом отличным от GET или HEAD, браузер спрашивает у пользователя, что делать дальше: переходить по новому URI или не надо.
HTTP код состояния 303: смотреть другой ресурс. HTTP код состояния 304: ресурс не модифицирован. HTTP код состояния 305: использовать прокси сервер. HTTP код состояния 307: временное перенаправление
HTTP код состояния 303 или код состояния смотреть другой ресурс.
HTTP код состояния 304 или код состояния ресурс не модифицирован. Клиент получает ответ от HTTP сервера с кодом 304 в том случае, когда посылался запрос с условным методом GET, но никаких изменений в документе не произошло. При этом HTTP сообщение от сервера не должно содержать тела. Ответ сервера всегда содержит следующие поля заголовков:
- Date;
- Expires, Cache-Control или
Ответы сервера с кодом 304 всегда завершаются пустой строкой после полей заголовка.
HTTP код состояния 305. Код состояния 305 говорит браузеру о том, что ему нужно обратиться к ресурсу, используя прокси-сервер. Прокси-сервер в сообщениях с кодом состояния 305 указывается в поле Location. При этом HTTP сервер ожидает, что клиент повторит запрос, но уже через прокси сервер и даже при необходимости пройдет аутентификацию на прокси сервере.
HTTP код состояния 306 использовался в старых версиях протокола HTTP, но теперь является просто зарезервированным.
HTTP код состояния 307 аналогичен коду состояния 302.
Настраивая HTTP сервер не забывайте про особенности HTTP соединения и помните, что код состояния — это параметр HTTP. Мы рассмотрели коды перенаправления HTTP, давайте перейдем к кодам ошибок клиента. В HTTP есть еще: информационные коды, успешные коды, коды ошибок клиента и коды ошибок сервера. А если тебе нужна информацию обо всех кодах состояния, обратись к справочнику HTTP кодов состояния, в котором есть полное описание всех кодов.
Что это такое и как это исправить
A 301 Перемещено навсегда — это код состояния ответа HTTP
, указывающий, что запрошенный ресурс был окончательно перемещен на новый URL-адрес, указанный в заголовке ответа Location
. Коды ответов категории 3xx
используются для указания клиенту сообщений о перенаправлении, чтобы клиент знал, что должно произойти перенаправление на другой ресурс или URL-адрес.
Различить все возможные коды ответа HTTP и определить точную причину появления сообщения, подобного 9, может оказаться сложной задачей.0005 301 Перемещен навсегда Код . Существует десятков возможных кодов состояния HTTP, используемых для представления сложных отношений между клиентом, веб-приложением, веб-сервером и часто несколькими сторонними веб-службами, поэтому определение причины конкретного кода состояния может быть затруднено. В этой статье мы рассмотрим код 301 Moved Permanently
, рассмотрев несколько советов по устранению неполадок, а также некоторые потенциальные исправления распространенных проблем, которые могут вызывать эту проблему, так что давайте начнем!
Проблема на стороне сервера
Все коды состояния ответов HTTP, относящиеся к категории 3xx
, считаются сообщениями перенаправления
. Такие коды указывают пользовательскому агенту (то есть вашему веб-браузеру), что требуется дополнительное действие для выполнения запроса и доступа к нужному ресурсу. В отличие от связанных со шлюзом кодов ответов 5xx
, таких как 502 Bad Gateway Error
, которые мы недавно рассматривали, которые могут указывать на проблемы либо на вышестоящем сервере или на клиенте код 301 Moved Permanently
обычно указывает на проблему на реальном веб-сервере, на котором размещено ваше приложение.
Тем не менее, внешний вид 301 Moved Permanently
обычно не требует большого вмешательства пользователя. Большинство браузеров должны автоматически обнаруживать код ответа 301 Moved Permanently
и автоматически обрабатывать действие перенаправления. Веб-сервер, на котором размещается приложение, обычно должен включать в себя специальный Заголовок Location
как часть ответа, отправляемого клиенту. Этот заголовок Location
указывает новый URL-адрес, по которому можно найти запрошенный ресурс. Например, если поступает запрос на доступ к URL-адресу https://airbrake.io
, но веб-сервер настроен на принудительное перенаправление на безопасную версию с использованием https
, ответ сервера будет содержать адрес : https ://airbrake.io
заголовок. Это сообщает браузеру, что он должен перенаправить этот запрос (как и все будущие) на https://airbrake.io
на защищенный URL-адрес https://airbrake.io
. В большинстве случаев браузер автоматически обнаружит этот код ответа 301 Moved Permanently
, прочитает новый URL-адрес Location
и перенаправит запрос в это новое местоположение. Рекомендуется использовать перенаправление 301 Moved Permanently
для перехода пользовательского агента с HTTP на безопасный HTTPS. Таким образом, если вы попытаетесь перейти по небезопасному URL-адресу https://airbrake.io прямо сейчас, вы будете автоматически перенаправлены на HTTPS-версию сайта (https://airbrake. io).
Поскольку 301 Moved Permanently
указывает на то, что что-то пошло не так на сервере
вашего приложения, мы можем игнорировать клиентскую
сторону вещей. Если вы пытаетесь диагностировать проблему со своим собственным приложением, вы можете немедленно игнорировать большую часть клиентского кода и компонентов, таких как HTML, каскадные таблицы стилей (CSS), клиентский JavaScript и т. д. Это не относится к и только к веб-сайтам. Многие приложения для смартфонов с современным пользовательским интерфейсом на самом деле работают на основе обычного веб-приложения; тот, который просто скрыт от пользователя. Если вы используете такое приложение и 301 Перемещено навсегда
Проблема не будет связана с приложением, установленным на вашем телефоне или локальном тестовом устройстве. Вместо этого это будет что-то на стороне сервера, которое выполняет большую часть логики и обработки за кулисами, вне поля зрения локального интерфейса, представленного пользователю.
При всем при этом, если ваше приложение генерирует коды 301 Moved Permanently
неправильно или неожиданно, вы можете предпринять ряд шагов для диагностики проблемы.
Начните с тщательного резервного копирования приложения
Как и в любом другом деле, лучше перестраховаться в начале, чем что-то напортачить и потом сожалеть об этом. Таким образом, крайне важно выполнить полное резервное копирование вашего приложения, базы данных и т. д., прежде чем предпринимать какие-либо исправления или изменения в системе. Еще лучше, если у вас есть такая возможность, создайте полную копию приложения на вторичном промежуточном сервере
, который не является «действующим» или иным образом не активен и не доступен для публики. Это даст вам чистую испытательную площадку, на которой вы сможете протестировать все потенциальные исправления для решения проблемы, не угрожая безопасности или неприкосновенности вашего работающего приложения.
Диагностика кода ответа 301 Moved Permanently
Код ответа 301 Moved Permanently
указывает, что сервер считает запрошенный ресурс недействительным и что запрос должен быть перенаправлен на новый, «правильный» URL-адрес. Я использую здесь слово вместо
, потому что вполне возможно, что сервер каким-то образом неправильно сконфигурирован или содержит ошибки, из-за чего он предоставляет коды 301 Moved Permanently
для ресурсов/URL-адресов, которые полностью действительны. Таким образом, большая часть диагностики проблемы будет заключаться в процессе двойной проверки того, какие ресурсы/URL-адреса генерируются.0005 301 Перемещено навсегда кодов ответов и определение того, являются ли эти коды подходящими или нет.
Тем не менее, если ваше приложение отвечает кодами 301 Moved Permanently
, которые оно не должно выдавать, это проблема, с которой могут столкнуться и многие другие посетители, что резко снижает способность вашего приложения обслуживать пользователей. Мы рассмотрим некоторые советы и рекомендации по устранению неполадок, которые помогут вам решить эту проблему. Если здесь ничего не работает, не забывайте, что Google — ваш друг. Не бойтесь искать конкретные термины, связанные с вашей проблемой, такие как название CMS вашего приложения или программного обеспечения веб-сервера, а также 301 Перемещено навсегда
. Скорее всего, вы найдете других, кто столкнулся с этой проблемой и нашел решение.
Устранение неполадок на стороне сервера
Вот несколько дополнительных советов, которые помогут вам устранить причины, по которым 301 Moved Permanently
-
Проверьте файлы конфигурации сервера
— Ваше приложение, скорее всего, работает на сервере, который использует одно из двух самых популярных программ для веб-серверов,Apache
илиnginx
. На момент публикации оба этих веб-сервера составляютболее 84%
программного обеспечения веб-серверов в мире! Таким образом, одним из первых шагов, которые вы можете предпринять, чтобы определить, что может вызывать эти коды ответа301 Moved Permanently
, является проверка файлов конфигурации программного обеспечения вашего веб-сервера на наличие непреднамеренных инструкций перенаправления.
Чтобы определить, какой веб-сервер использует ваше приложение, вам нужно найти файл ключа.
.htaccess
в корневом каталоге файловой системы вашего сайта. Например, если ваше приложение находится на общем хосте, у вас, скорее всего, будет имя пользователя, связанное с учетной записью на этом хосте. В таком случае корневой каталог приложения, скорее всего, имеет вид /home//public_html/
, поэтому файл .htaccess
будет иметь адрес /home//public_html/.htaccess
. Если вы нашли файл
, откройте его в текстовом редакторе и найдите строки, в которых используется Директивы RewriteXXX
, которые являются частью модуля mod_rewrite
в Apache. Подробное описание того, как работают эти правила, выходит далеко за рамки этой статьи, однако основная концепция заключается в том, что директива RewriteCond
определяет текстовый шаблон, который будет сопоставляться с введенными URL-адресами. Если посетитель сайта запрашивает соответствующий URL-адрес, директива RewriteRule
, которая следует за одной или несколькими директивами RewriteCond
, используется для фактического перенаправления запроса на соответствующий URL-адрес. Поэтому, если вы обнаружите какие-либо странные RewriteCond
или RewriteRule
директивы в файле .htaccess
, которые кажутся ненужными, попробуйте временно закомментировать их (используя префикс символов #
) и перезапустить веб-сервер, чтобы посмотреть, решит ли это проблему.
С другой стороны, если ваш сервер работает на nginx
, вам нужно искать совершенно другой файл конфигурации. По умолчанию этот файл называется nginx.conf
и находится в одном из нескольких общих каталогов: /usr/local/nginx/conf
, /etc/nginx
или /usr/local/etc/nginx
. После обнаружения откройте nginx.conf
в текстовом редакторе и найдите директивы return
или rewrite
. Например, вот простая директива блока
(то есть именованный набор директив), которая настраивает виртуальный сервер, создавая перенаправление с invalid-domain. com
на правильный valid-domain.com
URL:
сервер {
слушать 80;
слушать 443 ssl;
имя_сервера неверный-домен.com;
возврат 301 $scheme://valid-domain.com$request_uri;
}
Директивы Rewrite
в nginx
аналогичны директивам RewriteCond
и RewriteRule
из Apache
, поскольку они, как правило, содержат более сложные текстовые шаблоны для поиска. В любом случае просмотрите файл nginx.conf
на наличие ненормальных return
или rewrite
и закомментируйте их перед перезапуском сервера, чтобы увидеть, решена ли проблема.
-
Проверка журналов
. Почти каждое веб-приложение ведет журналы на стороне сервера в той или иной форме.Журналы приложений
обычно представляют собой историю того, что делало приложение, например, какие страницы были запрошены, к каким серверам оно подключалось, какие результаты базы данных оно предоставляло и так далее.Журналы сервера
относятся к фактическому оборудованию, на котором запущено приложение, и часто содержат сведения о работоспособности и состоянии всех подключенных служб или даже только самого сервера. Google «журналы [PLATFORM_NAME]», если вы используете CMS, или «журналы [PROGRAMMING_LANGUAGE]» и «журналы [OPERATING_SYSTEM]», если вы используете пользовательское приложение, чтобы получить больше информации о поиске журналов, о которых идет речь. -
Ошибки кода приложения или сценария
. Если ничего не помогает, причиной проблемы может быть проблема в каком-то пользовательском коде вашего приложения. Попробуйте диагностировать, откуда может возникнуть проблема, путем ручной отладки вашего приложения, а также анализа журналов приложений и сервера. В идеале сделайте копию всего приложения на локальную машину разработки и выполните пошаговый процесс отладки, который позволит вам воссоздать точный сценарий, в котором301 Перемещено навсегда
произошло и просмотрите код приложения в тот момент, когда что-то пойдет не так.
Независимо от причины, появление 301 Moved Permanently
в вашем собственном веб-приложении является убедительным признаком того, что вам может понадобиться инструмент управления ошибками, который поможет вам автоматически обнаруживать такие ошибки в будущем. Лучшие из этих инструментов могут даже предупредить вас и вашу команду сразу же при возникновении ошибки. Программное обеспечение Airbrake для мониторинга ошибок обеспечивает мониторинг ошибок в режиме реального времени и автоматические отчеты об исключениях для всех ваших проектов разработки. Современная веб-панель управления Airbrake гарантирует, что вы будете получать круглосуточные обновления состояния вашего приложения и частоты ошибок. Независимо от того, над чем вы работаете, Airbrake легко интегрируется со всеми наиболее популярными языками и платформами. Кроме того, Airbrake позволяет легко настраивать параметры исключений, предоставляя вам полный контроль над активной системой фильтрации ошибок, поэтому вы собираете только самые важные ошибки.
Ознакомьтесь с программным обеспечением Airbrake для мониторинга ошибок сегодня и убедитесь сами, почему так много лучших в мире команд инженеров используют Airbrake, чтобы революционизировать свои методы обработки исключений!
Что такое перенаправление 301 «Перемещено навсегда»?
Код состояния 301: «Перемещено навсегда»
Код состояния HTTP 301: «Перемещено навсегда»
Код состояния 301 отображается, когда страница была перемещена. В просторечии они известны как «редиректы 301».
Их следует использовать каждый раз, когда вы навсегда заменили URL-адрес другим URL-адресом. Пользователи и боты будут навсегда перемещены на новый URL-адрес, который заменит старый URL-адрес в результатах поиска. В конце концов, старый URL исчезнет.
Что является критическим и, вероятно, самым важным в этих переадресациях, так это то, что вес ссылок перешел со старого URL на новый URL. Это означает, что если вы получили кучу ссылок по старому URL-адресу и 301 перенаправляете этот старый URL-адрес на новый, вы получите весь этот ссылочный вес, а новый URL-адрес может заменить старый URL-адрес. старый в результатах поиска.
Сайты с плохим техническим SEO часто имеют 302 перенаправления, также известные как временные перенаправления. Они сообщают поисковым системам, что страница временно перемещается, и они должны вернуться и проверить ее позже.
В целом, с точки зрения SEO, вы хотите использовать переадресацию 301 и избегать переадресации 302.
Протокол HTTP
clickminded.com» frameborder=»0″ allow=»accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture» allowfullscreen=»»>Давайте поговорим о том, как работает протокол HTTP.
В самом своем основании Интернет состоит из двух основных вещей: клиентов и серверов .
Каждый раз, когда вы щелкаете в своем браузере, вы получаете доступ к Интернету через веб-клиент . Это может быть Chrome, Firefox, Safari или Internet Explorer.
При посещении веб-сайта вы отправляете запрос веб-серверу .
Facebook.com, ClickMinded.com, MarthaStewart.com/1525880/marthas-chocolate-chip-cookies — все эти сайты имеют собственный домашний адрес. Это называется IP-адрес .
Ваш домашний адрес может быть 123 Main Street, New York, NY 10001 , а адрес Facebook — 66.220.144.0 .
Всякий раз, когда вы посещаете страницу в Интернете, вы запрашиваете целую кучу документов с сервера этого веб-сайта. Это могут быть документы HTML, CSS, изображения, PDF — что бы это ни было, основные отношения остаются прежними: вы (клиент) делаете запрос, а веб-сайт (сервер) отвечает на этот запрос.
Язык , который вы используете для выполнения этих запросов, называется HTTP-протоколом . Эти протоколы на самом деле просто стандарты, с которыми согласились все в сети. Точно так же, как английский, испанский и китайский языки имеют понятный протокол, HTTP — это просто набор стандартов и понятный протокол.
Существует множество различных веб-протоколов, и вы, возможно, знакомы с некоторыми из них:
- DNS — Система доменных имен
- FTP – File Transfer Protocol
- HTTP – Hypertext Transfer Protocol
- IRC – Internet Relay Chat Protocol
- SMTP – Simple Mail Transfer Protocol
- SSL – Secure Sockets Layer
HTTP Коды состояния
Теперь, когда мы поняли, что такое протокол HTTP, давайте поговорим о кодах состояния HTTP. Коды состояния сообщают нам, был ли HTTP-запрос успешным, неудачным или чем-то средним.
Let’s take a look at the five core status codes:
- 1xx block: informational requests
- 2xx block: successful requests
- 3xx block: redirects
- 4xx block: client errors
- 5xx блок: ошибки сервера
Некоторые коды состояния встречаются чаще, чем другие. Например, когда вы занимаетесь цифровым маркетингом, вы часто сталкиваетесь с кодом состояния 200, кодом состояния 301 и кодом состояния 404, но вы можете никогда не увидеть код состояния 206 или 307.
Давайте кратко рассмотрим каждый блок кода состояния и его значение.
1xx Коды состояния
Это информационные запросы . Сервер еще не полностью выполнил запрос и все еще обрабатывает информацию. Вы не будете часто видеть эти коды. К ним относятся:
- 100 — Продолжить
- 101 — Протокол переключения
- 103 — Контрольные точки
2xx Коды состояния
Это успешных запросов , значит все в порядке. Они включают в себя:
- 200 — OK (вы увидите этот самый). перенаправляет . Они отображаются, когда вы запрашиваете адрес, но вас отправляют куда-то еще. Они могут быть хорошими или плохими. К ним относятся:
- 301 — переехал навсегда
- 302 — найдено
- 304 — Не изменено
- 305 — Использовать прокси-сервер
- 307 — Временное перенаправление
4xx Коды состояния
Это ошибки клиента . Это означает, что что-то пошло не так с запросом (клиент/пользователь), а не с ответом (веб-сайт/сервер). К ним относятся:
- 400 — Неверный запрос
- 401 — Неавторизованный
- 403 — Запрещенный
- 404 — Не найдено
- 408 — Время ожидания запроса
- 4910 — Исчезло0126
- 429 — слишком много запросов
5xx коды состояния
Это ошибки сервера . Это означает, что что-то пошло не так с ответом (веб-сайт/сервер), а не с запросом (клиент/пользователь). Они включают в себя:
- 500 — Внутренняя ошибка сервера
- 502 — Неверный шлюз
- 503 — Служба недоступна
- 504 — Тайм-аут шлюза
В заключение
Хотите узнать больше о конкретном коде? У нас есть серия кратких руководств по каждому ответу HTTP, чтобы вы могли оптимизировать свою стратегию цифрового маркетинга. Возьмите их здесь:
- Полное руководство по кодам состояний
- Код состояния 200, Код состояния 301, Код состояния 302, Код состояния 304
- Код состояния 401, Код состояния 403, Код состояния 404, Код состояния 410
- Код состояния 429, Код состояния 500, код состояния 503, код состояния 504
10-кратный рост вашего трафика от Google.
Получите контрольный список SEO, отправленный на ваш почтовый ящик.
[Бесплатный мини-курс] Изучите стратегию SEO, которую мы использовали в PayPal и Airbnb.
Получите ТОЧНУЮ структуру, которую вам нужно внедрить, чтобы ваша SEO-стратегия была надежной до конца года.