nginx 405 not allowed问题的解决

摘要:
DOCTYPEHTMLPUBLIC"-//IETF//DTDHTML2.0//EN"˃405MethodNotAllowedMethodNotAllowedTherequestedmethodPOSTisnotallowedfortheURL/index.html.Apache/1.3.37Serveratwww.linuxidc.comPort80例2:用Linux下的curl命令发送POST请求给Nginx服务器上的HTML静态页[root@new-host~]#curl-d1=1http://www.linuxidc.com/index.htm405NotAllowed405NotAllowednginx/0.5.35但在有些应用中,需要使静态文件能够响应POST请求。

转载自: http://www.linuxidc.com/Linux/2012-07/66761.htm

Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。

例1:用Linux下的curl命令发送POST请求给Apache服务器上的HTML静态页

[root@new-host ~]# curl -d 1=1 http://www.linuxidc.com/index.html
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>405 Method Not Allowed</TITLE>
</HEAD><BODY>
<H1>Method Not Allowed</H1>
The requested method POST is not allowed for the URL /index.html.<P>
<HR>
<ADDRESS>Apache/1.3.37 Server at www.linuxidc.com Port 80</ADDRESS>
</BODY></HTML>

例2:用Linux下的curl命令发送POST请求给Nginx服务器上的HTML静态页

[root@new-host ~]# curl -d 1=1 http://www.linuxidc.com/index.htm
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/0.5.35</center>
</body>
</html>

但在有些应用中,需要使静态文件能够响应POST请求。

对于Nginx,可以修改nginc.conf配置文件,改变“405错误”为“200 ok”,并配置location来解决,方法如下:

server
{
listen 80;
server_name domain.s135.com;
index index.html index.htm index.php;
root /opt/htdocs;

if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}

error_page 405 =200 @405;
location @405
{
root /opt/htdocs;
}

location ~ .*.php?$
{
include conf/fcgi.conf;
fastcgi_pass 127.0.0.1:10080;
fastcgi_index index.php;
}
}

免责声明:文章转载自《nginx 405 not allowed问题的解决》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇安装gitSpring MVC使用ModelAndView进行重定向下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ubuntu下发布asp.net core并用nginx代理之旅(续)

前面实现了ubuntu下的发布,然而实际项目一般为visual studio中发布文件系统,然后上传至生产环境中,(部分参考:上传文件到linux - ubuntu) 这节就发布到生产环境中的: 1.首先,在生产环境中搭建ftp服务端,方便我们上传文件至服务端中,以vsftpd为例: 首先安装vsftpd (不得不说ubuntu的apt-get用起来确实方...

利用Nginx做反向代理搭建ArcGIS 10.1 for Server集群环境

  搭建GIS Server集群环境时,通常不建议在GIS Server之间设置防火墙;而建议在服务器环境的前端设置反向代理来隐藏服务器环境的真实地址及端口,保险起见可将反向代理放入DMZ区(前后都设置防火墙),增加安全性。   ArcGIS 10.1 for Server做出的架构改进使得我们在搭建GIS服务器集群环境时更加容易和省心;Nginx因其高性...

nginx配置时server_name配的不一样还能正常访问

  原先server_name 配的是api.test.toutiao.applet.rockysaas.com,监听的是80端口,http。后来域名改成了api-test.tbk.rockysaas.com,监听443,https。但是发现原先的api.test.toutiao.applet.rockysaas.com还能访问。 server { #...

通过Nginx设置HttpOnly Secure SameSite参数解决Cookie跨域丢失

在前面的文章中“谷歌浏览器Chrome 80版本默认SameSite导致跨域请求Cookie丢失”,我们知道 Chrome 升级到80版本后,默认限制了跨域携带cookie给后端。我们也提到了可以修改Chrome的设置或在服务端添加SameSite设置来解决,但是普通的Web框架需要升级到最新版本才支持SameSite属性,升级Web框架成本太高,因此本文...

07 | 自己动手,搭建HTTP实验环境

说明《透视HTTP协议》是 罗剑锋 (奇虎360技术专家)在极客时间开的一门专栏课,笔者记录一下学习笔记,仅供参考。 这一讲是“破冰篇”的最后一讲,我会先简单地回顾一下之前的内容,然后在 Windows 系统上实际操作,用几个应用软件搭建出一个“最小化”的 HTTP 实验环境,方便后续的“基础篇”“进阶篇”“安全篇”的学习。 “破冰篇”回顾 HTTP 协议...

shell脚本之nginx的安装

       为了编写nginx自动部署的脚本而刚学习的shell脚本语言。写文章只是为了记录,有错误勿喷。 一、创建shell脚本程序        操作系统是Linux的 CentOS 7 版本。解释器默认使用 bash 。        首先是使用vim命令创建一个shell脚本程序。            vim nginx-install.sh ...