Я искал в Google, и все, что я могу найти, это то, что эта ошибка может произойти, когда вы отправляете сообщение в файл html. В моей настройке у меня есть правило перезаписи, которое в основном скрывает index.php от URL-адреса, и я долгое время думал, что это как-то связано с этим. Get работает нормально.
метод не разрешен
Запрос POST не разрешен для URL-адреса /post.php
Вот моя установка:
Debian squeeze / AMD64
nginx version: nginx/1.1.8
PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 08:24:40)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
Я сам решил эту проблему!
Я установил lighttpd и снова получил ту же ошибку с lighttpd. Я искал не в том месте, потому что ошибка 405 - это ошибка веб-сервера.
Однако я только начал использовать новый фреймворк php под названием fatfree F3, и эта фреймворк генерирует ошибку, когда вы используете GET следующим образом:
F3::route('GET /autho/idreply', 'auth.php');
GET означает, что платформа ожидает только переменные GET и отклоняет переменные POST.
То есть с ошибкой сервера 405!
Итак, изменив это на, следующее помогло:
F3::route('POST /auth/oidreply', 'auth.php');
И с помощью этой команды вы даже можете позволить фреймворку принять оба или оба варианта;
F3::route('GET|POST /auth/oidreply', 'auth.php');