NGINX版本:1.10.3在Debain 9.1操作系统上使用Jessie-Backports
nginx.conf :
user www-data; pid /var/run/nginx.pid; worker_processes 1; error_log /var/log/nginx/error.log; events { worker_connections 1024; } http { log_format main 'request_method:$request_method request:$request'; server { listen 80; error_page 405 =200 $uri; access_log /var/log/nginx/access.log main; location / { default_type text/html; root /usr/share/nginx/html/; include mime.types; index index.html index.htm index.asp index.aspx index.php default.html default.htm default.asp default.aspx default.php; } error_page 403 /403.html; error_page 400 401 402 404 /404.html; error_page 500 502 503 504 /50x.html; location = /400.html { root /usr/share/nginx/error-pages/Apache/2.4.20; } location = /403.html { root /usr/share/nginx/error-pages/Apache/2.4.20; } location = /404.html { root /usr/share/nginx/error-pages/Apache/2.4.20; } location = /50x.html { root /usr/share/nginx/error-pages/Apache/2.4.20; } } }
当我POST这个服务器,因为nginx无法在POST上提供静态页面,我得到一个405响应代码。 但是我也需要在POST请求上提供静态页面。 所以在互联网上的大多数解决方法build议这段代码= error_page 405 =200 $uri;
这工作正常的目的是提供静态内容到POST请求与响应代码200 , 但
由于$uri ,nginx的内部redirect导致$request_method从POST更改为GET ,在/var/log/nginx/access.log ,我得到这个:
request_method:GET request:POST /Login.html HTTP/1.1\n
代替
request_method:POST request:POST /Login.html HTTP/1.1\n
任何解决方法来解决这个问题?