Geralmente, essas mensagens de erro são causadas pela limitação de que o Nginx não pode veicular conteúdo estático em POST
request . Esse problema é discutido e as soluções alternativas sugeridas no artigo da InValidLogic.com veiculação do conteúdo estático Via POST do Nginx : nesse caso, você poderia substituir a mensagem de erro por error_page 405 =200 $uri;
ou criar um proxy para conteúdo estático, convertendo a solicitação POST
para GET
.
No entanto, neste caso, seu /formcheck
é realmente um script PHP em vez de um conteúdo estático, portanto POST
solicitações devem ser permitidas pelo Nginx e há POST
dados a serem recebidos, portanto, convertendo para GET
isn também é uma opção.
Parece que você tem duas seções location
:
location / {
if ($host ~ ^(www\.)?([a-z0-9\-\.]+)$){
root home/$2/public_html;
access_log logs/$2-access.log main;
}
}
location ~ \.php$ {
if ($host ~ ^(www\.)?([a-z0-9\-\.]+)$){
root home/$2/public_html;
access_log logs/$2-access.log main;
}
if (!-e $document_root$document_uri){return 404;}
fastcgi_pass localhost:9071;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Como você pode ver, apenas os locais que terminam com .php
são tratados com fastcgi, enquanto o restante, /formcheck
, cai em location /
exibindo apenas conteúdo estático, causando o erro 405
.