nginx/php-fpm - 405 Error Submitting Email Contact Form

I have a small Ubuntu 16.04 VPS that's running nginx/php-fpm to run a Wordpress site, and running an SMTP server through Postfix/Saslauthd. My mail server is working just fine at sending and receiving mail, and I have Wordpress set up to use SMTP instead of php mail() through the Postman plugin and that works perfectly.

However, when attempting to submit an email contact form through Wordpress, I keep getting a 405 Not Allowed error. I tried a couple different contact form plugins (Pirate Forms, Contact Email Form) and still got the same result. I also disabled Postman to force Wordpress to use php mail(), but still got a 405.

Nginx debug logs here Nginx config here.

EDIT: URL I'm trying to post to is https://example.com/contact/

Nginx access log shows this:

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"

Not getting anything in error.log.

1
задан 10 October 2016 в 03:27
1 ответ

Вы получаете ошибку 405, потому что вы сначала передаете все запросы в memcached, но он может обрабатывать только запросы GET (и HEAD). Следовательно, этот восходящий поток возвращает 405 Метод запрещен. Вам действительно нужно справиться с этим, но в настоящий момент вы игнорируете это. Я думаю, что самый простой способ сделать это - добавить 405 в список ошибок, которые вы обрабатываете на error_page .

0
ответ дан 4 December 2019 в 05:45

Теги

Похожие вопросы