`
wbj0110
  • 浏览: 1603762 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

解决“HTTP/1.1 405 Method not allowed”问题,让静态文件响应POST请求

阅读更多

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.sohu.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.sohu.com Port 80</ADDRESS>
</BODY></HTML>



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

[root@new-host ~]# curl -d 1=1 http://blog.s135.com/tech/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;
   }
}
分享到:
评论

相关推荐

    http请求405错误方法不被允许的解决 (Method not allowed)

    主要介绍了http请求405错误方法不被允许的解决 (Method not allowed),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Nginx静态文件响应POST请求 提示405错误的解决方法

    当尝试使用POST方法向静态文件发送请求时,服务器会返回一个HTTP状态码405(Method Not Allowed),意味着所请求的方法(这里是POST)不被服务器支持。 405错误的示例可以通过curl命令演示。例如,在Linux环境下,...

    http状态码信息,详细描述了http各状态码的含义

    405(Method Not Allowed)表示请求方法(如GET、POST)不被允许。406(Not Acceptable)说明服务器无法提供满足请求的资源格式。408(Request Timeout)表示服务器等待请求超时。409(Conflict)表示请求与当前资源...

    tomcat解决跨域访问问题配置

    tomcat解决跨域访问问题,具体配置如下: 1、修改tomcat下的Conf/web.xml文件,在该文件内容中新增以下配置,注意,若该web.xml中存在其它filter,则需要将该filter放在所有filter前面; &lt;filter-name&gt;...

    python后端接收前端回传的文件方法

    3. **设置静态文件和媒体文件路径**:Django区分静态文件(如CSS、JavaScript等)和媒体文件(如用户上传的文件)。我们需要为这些文件指定目录。 ```python MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join...

    java-servlet-api.doc

    一个Javaservlet具有一个生命周期,这个生命周期定义了一个Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清除。Servlet的生命周期被javax.servlet.Servlet这个接口所定义。 所有的...

    【面试题解析】– 20200327Java软件开发工程师面试题解析

    - `405 Method Not Allowed`:请求的方法(如GET、POST)对请求的资源不适用。 - `500 Internal Server Error`:服务器遇到了无法处理的错误。 3. **SQL的内连接、左连接和右连接**: - **内连接(Inner Join)*...

    Nginx跨域设置Access-Control-Allow-Origin无效的解决办法

    使用大家说的以下配置,验证无效,跨域问题仍然存在 add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET,...

    windows中apache 301页面跳转实现方法

    - **405 Method Not Allowed**:请求方法(如GET、POST)不受支持。 - **408 Request Timed Out**:服务器等待客户端完成请求超时。 - **411 Content Length Required**:服务器需要请求包含Content-Length头。 - **...

    Go服务器

    http.Error(w, "Method Not Allowed", http.StatusMethodNotAllowed) return } body, err := ioutil.ReadAll(r.Body) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return ...

    js读取json文件片段中的数据实例

    此外,如果在请求JSON文件时出现405错误(Method Not Allowed),这通常意味着服务器不允许使用当前请求方法(如POST)。在这种情况下,我们需要确保请求方法设置为GET,因为`$.getJSON()`默认使用GET请求。如果仍然...

    django 文件上传功能的相关实例代码(简单易懂)

    2. **设置`settings.py`**:在项目的`settings.py`文件中,我们需要配置文件上传相关的几个关键项,包括允许的主机、媒体文件的存储路径以及静态文件的目录等。 ```python ALLOWED_HOSTS = ['127.0.0.1', '...

    flask框架路由常用定义方式总结

    如果尝试通过POST或其他非GET请求访问这个路由,Flask将会返回405 Method Not Allowed错误。 #### 四、路由查找顺序 当存在多个路由定义相同路径时,Flask会按照定义的顺序来决定调用哪个处理函数。例如: ```...

    Python后台开发Django的教程详解(启动)

    - **视图**:视图是Django应用的核心部分,负责处理请求并返回响应。视图可以是函数视图(FBV)或类视图(CBV)。 #### 路由配置 - **函数视图**: ```python # 在dongapp2/views.py from django.shortcuts ...

    Django ImageFiled上传照片并显示的方法

    return HttpResponse("Method not allowed") def list(request): template_var = {} photos = Img.objects.all() template_var['pics'] = photos return render_to_response('list.html', template_var, ...

    Flask实现图片的上传、下载及展示示例代码

    &lt;form method="post" action="http://localhost:5000/up_photo" enctype="multipart/form-data"&gt; &lt;input type="file" size="30" name="photo"/&gt; ;"/&gt; 提交信息" class="button-new" style="margin-top:15...

Global site tag (gtag.js) - Google Analytics