405 Not Allowed

Редактор: Дмитрий Сокол 13382 2 мин

Что такое ошибка 405 Not Allowed

Эта ошибка означает, что сервер на котором расположен сайт, выполнял какую-то операцию и на определенном этапе получил на это запрет.

Как исправить ошибку 405?

Обычно, такая ситуация возникает по следующим причинам:

Вы импортируете\экспортируете слишком большую базу данных через PHP-скрипт

Практически на каждом хостинге, существует ограничение по времени, на работу конкретного php-скрипта (обычно около 30 секунд). И по истечении этого времени, у вас появится сообщение об ошибке.

Как исправить? Здесь есть три варианта решения:

  1. Используйте для экспорта\импорта баз данных веб-интерфейс phpMyAdmin. Это наиболее популярный способ переноса БД, и том как правильно это сделать можно почитать в соответствующей статье.
  2. Другой вариант (если у вас получится) - разбейте ваш файл по частям, передача которых будет укладываться в отведенное время, и таким образом Вы избежите ошибки.
  3. создать Cron-задачу (ищите в панели управления хостинга раздел Cron и жмите "Создать задачу" или что-то подобное). В поле "Задача" вписывайте путь к вашему скрипту, который переносит данные. В таком случае лимит времени на его исполнение может вырасти до 300 секунд, и скорее всего Вам этого хватит для переноса БД. Но не у всех провайдеров это может сработать.

PHP-скрипт на вашем сайте пытается вызывать файлы с такими расширениями, которые должен обрабатывать Apache-сервер

Как исправить? Для начала по логам сервера (смотрите POST-запросы с ошибкой) нужно определить, что проблема заключается именно в этом. Если да, то найдите в панели управления хостингом раздел "Статические файлы" и удалите те расширения, которые мешают нормальной работе скрипта. Важно! Изменения могут вступить в силу в течении 1-2 часов.

Попытка доступа к файлам с помощью некорректного метода

Чаще всего так происходит когда идет попытка доступа к статическим файлам через POST.

Как исправить? Можно просто грубым образом вместо 405 ошибки, показывать, что все OK (ответ 200)

server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 405 =200 $uri;
# ...
}

При работе через прокси, можно отправить запрос туда:

error_page 405 =200 @405;
location @405 {
root /htdocs;
proxy_pass http://localhost:8080;
}

Проблемы с FastCGI

Все тот же POST-запрос может вызывать проблем с модулем FastCGI и выдавать ошибку.

Как исправить?Отделяем от запроса УРЛ скрипта и его параметры:

location ~\.php(.*) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include /etc/nginx/fastcgi_params;
}
Дмитрий Сокол
Редактор материала • Дмитрий Сокол Хостинг-эксперт (опыт работы 9 лет) Основная специализация - составление обзоров хостинг-провайдеров, написание статей и составление рейтингов. Верит, что невозможное - возможно и убеждает всех: "круто делай - круто получится!".
Только эксперты отвечают на ваши вопросы
Не нашли ответ на свой вопрос?
Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.
Мы старались для Вас!
Оцените статью
или
Расскажите о ней

Юзеры (4) оценили на 5.0 из 5

Рейтинги хостинг-провайдеров по задачам сайта
Сентября
Бесплатный тест
Установленное ПО
Технологии
Региональные