nginx/php-fpm-提交电子邮件联系表单时出现 405 错误

nginx/php-fpm-提交电子邮件联系表单时出现 405 错误

我有一台小型 Ubuntu 16.04 VPS,它运行 nginx/php-fpm 来运行 Wordpress 网站,并通过 Postfix/Saslauthd 运行 SMTP 服务器。我的邮件服务器在发送和接收邮件方面运行良好,并且我已通过 Postman 插件将 Wordpress 设置为使用 SMTP 而不是 php mail(),并且运行完美。

但是,当我尝试通过 Wordpress 提交电子邮件联系表单时,我不断收到 405 Not Allowed 错误。我尝试了几个不同的联系表单插件(Pirate Forms、Contact Email Form),但结果仍然相同。我还禁用了 Postman 以强制 Wordpress 使用 php mail(),但仍然收到 405。

Nginx 调试日志这里 Nginx 配置这里

编辑:我尝试发布的 URL 是https://example.com/contact/

Nginx 访问日志显示如下:

xxx.xxx.xxx.xx  - - [09/Oct/2016:20:10:07 -0400] "GET /favicon.ico HTTP/2.0" 200 524 "https://example.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36"
xxx.xxx.xxx.xx  - - [09/Oct/2016:20:10:08 -0400] "GET /contact/ HTTP/2.0" 200 6090 "https://example.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36"
xxx.xxx.xxx.xx  - - [09/Oct/2016:20:10:09 -0400] "GET /favicon.ico HTTP/2.0" 200 524 "https://example.com/contact/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36"
xxx.xxx.xxx.xx  - - [09/Oct/2016:20:10:22 -0400] "POST /contact/ HTTP/2.0" 405 626 "https://example.com/contact/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36"
xxx.xxx.xxx.xx  - - [09/Oct/2016:20:10:22 -0400] "GET /favicon.ico HTTP/2.0" 200 524 "https://example.com/contact/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36"

error.log 中未收到任何内容。

答案1

您收到 405 错误是因为您将所有请求首先传递给 memcached,但它只能处理 GET(和 HEAD)请求。因此,此上游返回 405 方法不允许。您需要实际处理此问题,但目前您忽略了它。我认为最简单的方法是将 405 添加到您在 中处理的错误列表中error_page

相关内容