Apache put:URL不允许使用请求的方法PUT

时间:2015-04-13 13:31:28

标签: apache mod-rewrite put http-status-code-405

我正在尝试在我的apache 2.2上允许“put”方法,但是我尝试了什么(Limit,LimitExcept ...),
我总是遇到以下错误:

405 Method Not Allowed
The requested method PUT is not allowed for the URL

这是我的http.conf:

<VirtualHost *:80>
    ServerName example.com:80    
    DocumentRoot "D:/test"
    Include "D:/conf/httpd.conf"
    <Directory />
        Order Allow,Deny
        Allow From All
        Options Indexes FollowSymLinks MultiViews
        <LimitExcept GET PUT POST DELETE>
            Order allow,deny
            Allow from all
        </LimitExcept>
    </Directory> 
</VirtualHost>

更新: 我读了一些相关的帖子,如下所示:

http://stackoverflow.com/questions/2934554/how-to-enable-and-use-http-put-and-delete-with-apache2-and-php  

但我没有任何脚本php或cgi 我只想将http调用(get,post,put delete ...)重定向到mod_rewrite这样的模拟文件:

RewriteCond %{REQUEST_URI} ^/maincall/customer
RewriteCond %{REQUEST_METHOD} PUT
RewriteRule /maincall/customer %{DOCUMENT_ROOT}/mockfolders/PUT/data.json

2 个答案:

答案 0 :(得分:0)

我找到了解决方案:

  • 安装perl以创建cgi脚本
  • 在httpd.conf中定义以下规则:

    AddHandler cgi-script .pl
     RewriteCond%{REQUEST_URI} ^ / my / url
     RewriteCond%{REQUEST_METHOD} PUT
     RewriteRule / my / url&#34; C:/Apache/Apache2.2/cgi-bin/myurlput.pl"

它的工作

答案 1 :(得分:0)

我在使用 postman 进行服务器测试时发现了这个问题。其实这个问题是因为你输入了一个错误的 URL。尝试修复您点击的 URL。它适用于我的问题