Забавно, что HTTP коды ошибок одновременно очень полезны и невероятно раздражающи.
Когда при загрузке страницы появляется ошибка, это ясно указывает на проблему с сайтом — но большинство из нас не имеет ни малейшего представления о том, что означает “405 Method Not Allowed”, не говоря уже о том, как это исправить.
Вот почему мы написали это удобное руководство! Ошибка 405 – это не повод для паники; есть всего несколько шагов, чтобы восстановить ваш сайт в рабочем состоянии.
На следующих нескольких страницах мы объясним, что представляет собой эта ошибка и покажем, как её устранить.
Что такое ошибка 405 Method Not Allowed?
Ошибка 405 — это тип HTTP-статус кода. Это означает, что это сообщение, которое сервер отправляет вашему веб-браузеру, объясняя, почему он не может предоставить запрашиваемый вами контент.
Сервер
Сервер – это компьютер, который хранит данные. Веб-сервер является типом сервера, который хранит и доставляет веб-страницы пользователям. Веб-серверы подключены к интернету и используют HTTP для отправки веб-страниц пользователям, которые их запрашивают.
Читать далееПостоянный статус-код 405 является проблемой для любого, кто управляет веб-сайтом. Если несколько пользователей видят одну и ту же ошибку, это означает, что на вашем веб-сайте что-то настроено неправильно.
Пока вы не устраните проблему, посетители не смогут получить доступ к странице, где отображается код ошибки.
Этот код ошибки может отображаться как:
- 405 Метод не разрешен
- 405 Не разрешено
- Метод не разрешен
- HTTP 405 Ошибка
- HTTP Ошибка 405 – Метод не разрешен
- HTTP 405 Метод не разрешен
Что вызывает ошибку 405?
Давайте немного углубимся в технические детали.
Когда вы пытаетесь посетить определенную веб-страницу, ваш браузер запрашивает у хостинг-сервера отправку содержимого. Обычно сервер видит этот запрос и мгновенно отправляет страницу на ваше устройство. Успех!
Весь этот процесс регулируется HTTP, или Протоколом передачи гипертекста. Этот протокол использует серию статусных кодов для отслеживания прогресса и проблем.
Коды в диапазоне 400 относятся к ошибкам на стороне клиента. Код ошибки 405 Method Not Allowed означает, что ваш браузер отправил HTTP-запрос (GET, POST, PUT и т.д.), который не разрешен для данного конкретного ресурса или URL.
Во многих случаях это вызвано действиями пользователя. Самая распространенная причина — введение неправильного URL.
Однако, код ошибки 405 также может появиться, когда произошла ошибка в конфигурации вашего сайта. Мы рассмотрим некоторые из этих проблем позже.
В чем разница между ошибками 404 и 405?
Ошибки 404 и 405 мешают пользователям получать доступ к контенту на вашем сайте, но связаны с разными проблемами.
Код ошибки 404 появляется, когда кто-то посещает URL, на котором нет контента. Например, это иногда происходит, когда страницы удаляются или домены изменяются.
В отличие от этого, ошибка 405 означает, что ваш сервер отклоняет HTTP-запрос от браузера. Содержимое есть, но сервер отказывается предоставить доступ, потому что запрос был сделан в неправильном формате.
Как исправить ошибку 405 Method Not Allowed
Понимание причин возникновения ошибки 405 является важным шагом в решении проблемы.
Однако этот код состояния не сообщает нам, в чем именно заключается проблема. Единственный способ определить точную проблему — это устранение неполадок.
Готовы начать? Вот список возможных решений:
1) Проверьте ваши ссылки
Когда вы сталкиваетесь с ошибкой 405, скорее всего, вы просто перешли на неправильную страницу.
По соображениям безопасности веб-серверы обычно настроены на прием только определенных типов запросов по каждому URL. Если вы посетите страницу, к которой нет открытого доступа, вы можете столкнуться с сообщением об ошибке 405.
Если посетители вашего сайта постоянно видят коды ошибки 405, это может быть связано с тем, что они переходят по неверной ссылке.
Один из способов предотвратить это – проверить ваш сайт с помощью Dead Link Checker или аналогичного бесплатного инструмента. И убедитесь, что ни одна из ваших социальных ссылок и целевых страниц не ведет на приватные страницы.
2) Проверьте ваши обновления
Вы недавно обновили свою систему управления содержимым, тему или даже плагин? Возможно, поэтому вы вдруг стали видеть сообщения об ошибке 405 Method Not Allowed.
Обновления необходимы для поддержания хорошей безопасности сайта. Они также могут исправлять существующие ошибки и предоставлять доступ к новым функциям. Но иногда свежие обновления вносят новые ошибки.
Если вы не уверены, нужно ли вам обновиться, войдите в свою учетную запись администратора и перейдите на страницу Панель управления > Обновления. Здесь вы увидите временную метку последней проверки WordPress на наличие обновлений. При необходимости вы можете нажать «Проверить снова», чтобы проверить обновления вручную.
К сожалению, иногда обновление может нарушить работу вашего сайта. Чтобы исправить это, вы можете просто откатиться к предыдущей версии системы, темы или плагина, которые могли вызвать проблемы.
Конкретный процесс здесь зависит от того, что вам нужно понизить. Например, пользователи WordPress могут использовать плагин WP Downgrade для возврата к предыдущей версии.
Для некоторых сайтов наиболее простой способ — это просто восстановить весь сайт из резервной копии — смотрите шаг 10 для подробностей.
Как понизить версию плагинов и тем WordPress
Если вы считаете, что определенная тема или плагин вызывает проблему, мы рекомендуем использовать плагин WP Rollback. После активации у вас появится возможность понизить версию любого установленного плагина или темы.
Просто откройте Plugins > Installed Plugins или Appearance > Themes в вашей административной зоне WordPress, и вы увидите маленькую кнопку «Rollback» под каждым плагином или темой.
Кликните здесь, и WP Rollback позволит вам выбрать точную версию, которую вы хотите восстановить.
После завершения понижения тарифа убедитесь, что вы нажали Активировать на плагине или теме, чтобы включить старую версию.
3) Удаление новых плагинов, модулей и тем
Так же, как обновления существующих плагинов и тем могут всё испортить, так и новые добавления на ваш сайт могут привести к проблемам.
Имея это в виду, стоит деактивировать новые плагины, модули и темы, если на вашем сайте начинают появляться ошибки 405 Method Not Allowed.
Вновь процесс будет зависеть от системы управления содержимым, которую вы используете.
В WordPress это можно сделать через административную зону. Перейдите в раздел Plugins или Appearance > Themes, и вы увидите красную кнопку Deactivate рядом с каждым плагином и темой.
Не уверены, какой plugin вызывает проблему? Вы можете отключить все ваши plugins за минуту через FTP или SSH:
- В вашем FTP/SSH клиенте перейдите в директорию вашего сайта WordPress
- Перейдите в wp-content и щелкните правой кнопкой мыши на plugins
- Выберите Переименовать
- Измените имя папки на /plugins_OFF
Это немедленно отключит все плагины. Когда вы захотите отменить процесс, просто повторите шаги и переименуйте папку в plugins.
Если вы хотите удалить темы через FTP/SSH:
- Посетите каталог вашего сайта
- Перейдите в wp-content/themes directory.
- Удалите папку темы, которую хотите удалить
Просто имейте в виду, что вам может потребоваться сохранить резервную копию этой папки на случай, если тема окажется не виновата.
4) Восстановить вашу базу данных
Плагины и темы обычно требуют хотя бы минимального доступа к вашей базе данных для выполнения своих функций.
Иногда они становятся немного неуправляемыми и начинают вносить изменения в части базы данных, которые не относятся к их обязанностям. Эти изменения могут вызвать ошибки 405.
База данных
База данных – это коллекция информации, доступной для компьютеров. Базы данных используются для хранения информации, такой как записи о клиентах, каталоги продуктов и финансовые транзакции.
Читать далееДаже если вы удалите проблемный плагин или тему, изменения, которые они внесли, останутся. Существует только два способа решить эти проблемы:
- Просмотрите журналы вашей базы данных на предмет проблемных изменений
- Восстановите предыдущую версию вашей базы данных
Журналы баз данных
Для доступа к журналам базы данных вашего сайта перейдите в панель управления вашего провайдера хостинга. Обычно вы сможете получить доступ к журналам только если у вас есть частный сервер.
Для баз данных, размещенных в DreamHost, перейдите в MySQL Databases чтобы найти имя вашей MySQL Databases, а затем свяжитесь с технической поддержкой для получения доступа.
Если вы точно знаете, когда начали появляться ошибки 405, вы можете найти причинное изменение в базе данных, отсортировав журналы по времени. Вы ищете изменения “INSERT”, “UPDATE” или “DELETE”.
Имейте в виду, что вам потребуется глубокие знания веб-разработки для выявления потенциальных проблем здесь. Если вы не уверены, что именно вы видите, избегайте внесения изменений и обратитесь к профессионалу.
Восстановите вашу базу данных
Если у вас нет навыков разработчика, восстановление вашей базы данных до предыдущей версии, вероятно, является более реалистичным вариантом.
Как и данные сайта, DreamHost автоматически создает резервную копию вашей базы данных каждый день. Чтобы восстановить одну из этих резервных копий:
- Посетите страницу Базы данных MySQL в вашем аккаунте
- Кликните на кнопку Восстановить БД справа от вашей базы данных
- Выберите время резервной копии, которую хотите восстановить
- В разделе При восстановлении, выберите вариант 3 или 4 в зависимости от вашей CMS; для WordPress выберите вариант 4
5) Читайте журналы на стороне сервера
Так же, как журналы вашей базы данных могут выявить проблемы, приводящие к ошибкам 405, мы также можем найти подсказки в журналах на стороне сервера.
Файлы, которые мы ищем здесь, называются error.log и access.log. С DreamHost вы можете просматривать их через SFTP (Secure File Transfer Protocol):
- В вашем FTP-клиенте перейдите в директорию /logs в вашей пользовательской папке
- Откройте сайт, который хотите проверить
- Откройте самую последнюю директорию с именем, начинающимся на http
- Откройте файл журнала внутри, используя ваш любимый текстовый редактор
Когда вы проверяете файлы, ищите ошибки, связанные с конфигурацией сервера или изменениями в коде вашего веб-приложения.
6) Подтвердите конфигурацию вашего веб-сервера
Как мы упоминали ранее, ошибка 405 Method Not Allowed возникает, когда веб-сервер отклоняет запрос.
В большинстве случаев это полезно. Если бы ваш сервер не блокировал определенные методы запросов, ваш сайт мог бы легко быть перегружен нежелательным вниманием.
Но так же, как и излишне агрессивный вышибала в клубе, иногда веб-серверы блокируют неправильные запросы или неправомерно ограничивают доступ к определенному контенту. Это обычно вызвано некорректной конфигурацией сервера. В результате посетители перенаправляются на страницу с ошибкой.
Чтобы выяснить, является ли это проблемой вашего сайта, вам необходимо посетить файл конфигурации вашего сервера. Точное имя файла будет зависеть от того, какое программное обеспечение веб-сервера вы используете: Apache, Nginx или Cloudflare.
По умолчанию в DreamHost используется Apache, поэтому вы ищете .htaccess файл в корневом каталоге вашего сайта. В планах VPS у вас есть возможность переключиться на хостинг Nginx; в этом случае ваш конфигурационный файл будет nginx.conf.
После того как вы найдете нужный файл, откройте его в вашем предпочтительном текстовом редакторе. Затем, найдите команды перезаписи. Они связаны с модулем mod_rewrite Apache.
Этот модуль позволяет модифицировать URL, запрашиваемые пользователями, до их обработки сервером. Это может быть полезно, когда вы хотите перенаправить пользователей на другую страницу, перенаправить определенные типы трафика или просто показать более понятный URL.
Проблемы обычно связаны с командами вроде этой в вашем конфигурационном файле:
RewriteRule ^(.*)$ http: //example.com [R=405, L]
Это заставляет сервер возвращать статус-код HTTP-ответа 405, когда кто-то посещает URL, указанный в команде.
Если вы столкнулись с постоянными ошибками, попробуйте закомментировать такие команды в вашем конфигурационном файле. Вы можете сделать это, добавив # в начале строки, которую хотите закомментировать.
В качестве альтернативы, вы можете изменить директиву с RewriteEngine ON на RewriteEngine OFF.
7) Исправление прав доступа к файлам
Еще одна причина, по которой сервер может блокировать доступ к определенному контенту, заключается в том, что ваши права доступа на сайте неправильно настроены.
Например, ваш сервер может разрешить администратору использовать определенный HTTP-метод. Но когда обычный посетитель сайта пытается выполнить тот же запрос, он блокируется и получает код ошибки.
Самый быстрый способ проверить и управлять правами доступа — обычно через вашу панель. Пользователи DreamHost могут использовать встроенный файловый менеджер:
- Посетите Управление сайтами и нажмите кнопку Управление
- Откройте каталог вашего сайта
- Чтобы просмотреть права доступа, щелкните правой кнопкой мыши по любому файлу и выберите CHMOD
Вы можете обнаружить, что один из ваших важных файлов не имеет общего доступа для чтения.
Если вы используете собственный частный сервер или VPS, также стоит проверить настройки конфигурации. Ваш сервер может быть настроен на прием только определенных методов HTTP-запросов для конкретных типов файлов.
8) Отладка вашего кода
В конечном итоге, причиной ошибок 405 может быть то, что что-то не так с кодом вашего сайта или веб-приложения.
Для диагностики таких проблем вам потребуется выполнить полный процесс отладки. Обычно это включает создание полной локальной копии вашего сайта, а затем попытку воспроизвести ошибку. Как вариант, вы можете использовать онлайн-среду разработки.
Точный процесс, которому вам нужно следовать, зависит от используемой CMS, скриптов и языков программирования. Если ваш сайт работает на WordPress и вы уверены в использовании командной строки, вы можете попробовать использовать WP-CLI.
9) Восстановите ваш весь сайт
Иногда в жизни нужно уметь признавать поражение и, как говорят дети, «принять проигрыш».
Если вы попробовали другие способы устранения неполадок и ничего не помогло, возможно, вам просто нужно восстановить ваш сайт к состоянию, которое было до появления ошибок клиента.
Когда вы размещаете любой сайт на DreamHost, мы всегда рекомендуем делать регулярные резервные копии и сохранять копию этих файлов в автономном режиме. Но мы сохраняем ежедневные резервные копии каждого сайта, размещенного на наших серверах.
Облачный хостинг
Традиционный хостинг размещает веб-сайт на физическом сервере. В свою очередь, «облачный хостинг» использует несколько виртуальных (удаленных) серверов для той же задачи.
Читать далееЭто означает, что вы можете восстановить ваш сайт таким, каким он был вчера, всего парой кликов.
Для этого перейдите на страницу Домены в хостинге, и нажмите кнопку Восстановить справа.
Затем выберите, насколько далеко в прошлое вы хотите вернуться, и выберите опцию «Сделать резервную копию активной». Это заменит ваш текущий активный сайт выбранной резервной копией.
Если вы используете DreamPress, вы можете выполнить тот же процесс, посетив Управляемый WordPress и нажав кнопку Управление рядом с вашим доменом.
Затем выберите вкладку Резервные копии и нажмите Восстановить на архивной версии, которую вы хотите использовать. Подтвердите Начать восстановление, и ваш сайт скоро вернется в прежнее состояние, без ошибки 405.
10) Проверьте свои A записи
Один последний совет: убедитесь, что A записи для вашего домена настроены правильно.
В некоторых случаях вы можете видеть ошибки 405, если ваши A записи указывают на неправильный сервер. Например, сервер, настроенный для хостинга вашего сайта, может иметь другие правила, чем тот, который настроен для хостинга API (интерфейс программирования приложений).
Если ваш домен зарегистрирован или управляется через DreamHost, вы можете проверить ваши A записи, посетив Управление сайтами:
- Нажмите на три точки
- Выберите DNS Settings из меню
Бонус: Избавьтесь от ошибок 405 в ваших API вызовах
Если ваш сайт зависит от соединения с внешним API, вы можете столкнуться с ошибкой 405, потому что сервер API отклоняет ваш запрос. Это часто связано с неправильным форматированием запроса.
Чтобы предотвратить это, убедитесь, что вы включили заголовок “Content-Type” в свои POST-запросы. Вот несколько примеров:
- Java/PHP – Content-Type: application/json
- HTML – Content-Type: text/html; charset=UTF-8
- XML – Content-Type: application/xml
Также рекомендуется включить заголовок «Accept»:
- Java/PHP – Принимает: application/json
- HTML – Принимает: text/html
- XML – Принимает: application/xml
Обязательно проверьте документацию API. Возможно, вы обнаружите, что тип запроса, который вы делаете, не поддерживается API. Точно так же журналы вашего сайта или приложения могут раскрыть основную проблему.
Как предотвратить повторение ошибки 405
Прохождение всех вышеперечисленных шагов — это немалая задача. Но если вы готовы приложить усилия, то должны суметь устранить все ошибки 405, которые возникают на вашем сайте или приложении.
Хотите убедиться, что не придется проходить через это снова? Вот несколько ключевых советов:
- Тестируйте свой сайт – Каждый раз, когда вы устанавливаете новые плагины или темы, обязательно проводите тестирование. Если изменения могут вызвать ошибки 405, лучше знать об этом заранее!
- Обращайте внимание на аутентификацию – Всегда следите за тем, кто имеет доступ к каким ресурсам на вашем сервере.
- Помогайте пользователям устранять неполадки – В большинстве случаев ошибки 405 связаны с конкретным пользователем. Рассмотрите возможность настройки индивидуальных страниц ошибок, которые включают информацию о том, как пользователи могут исправить проблему самостоятельно.
С небольшим упорством вы сможете раз и навсегда победить ошибку 405 и обеспечить своим посетителям бесперебойный просмотр!