Прилагаемый патч, превращает POST в GET для внтутреннего редиректа и,
кроме того, позволяет вместо
Патч применил, теперь все работает.
if ($request_method != "POST") {
писать
limit_except POST {
deny all;
}
Но deny вернет 403 клиенту, а 405 здесь будет более правильно, если не
память мне не изменяет, то Апач так и делает в аналогичной директиве.
Можно так:
limit_except POST {
deny all;
}
error_page 403 =405 /error_page.html;
Все равно не совсем корректно, тогда невозможно будет правильный статус
403 послать. К тому же будет несколько лишних дисковых syscall на
обработку /error_page.html. При незагруженном процессоре и перегруженном
диске в какой-то момент это может стать критичным.
Если этот error_page стоит только внтутри location, уходящего на fastcgi,
то там других 403 появится не откуда.
Есть откуда, я шлю 403 когда юзеру или подсети действительно запрещен доступ.
А также и другие статусы при соотв. ситуациях. В логах потом гораздо проще
анализировать что происходит.