【问题标题】:Why does my web server software disallow PUT and DELETE requests?为什么我的 Web 服务器软件不允许 PUT 和 DELETE 请求?
【发布时间】:2017-06-14 15:33:24
【问题描述】:

我正在尝试实现 REST 协议,并在尝试调试时意识到我的 Web 服务器不允许 PUT 请求。

我已经通过运行进一步测试并确认了这一点:

curl -X PUT  http://www.mywebserver.com/testpage

我的网络服务器返回 403 - 禁止错误。

DELETE 也是如此,POST 和 GET 一切正常。

我想知道这是否是使用 REST 的人遇到的常见问题以及解决方法可能是什么?

我可以对.htaccess 文件进行简单的更改吗?还是需要修改协议在POST查询字符串中设置隐藏变量“_method”?

【问题讨论】:

    标签: http rest


    【解决方案1】:

    Web 服务器通常会被配置为阻止除 GET 和 POST 之外的任何内容,因为 99% 的情况下,它们都是必需的,但存在问题 过去,应用程序假设请求是这两个请求之一。

    你不说它是哪个服务器,但是,例如,你可以告诉 Apache 哪个服务器 指令允许的方法:

    例如:

    <Limit POST PUT DELETE>
      Require valid-user
    </Limit>
    

    听起来可能有一些有用的系统管理员使用它来阻止非 GET/POST

    你可以试试.htaccess

    <Limit GET POST PUT DELETE>
      Allow from all
    </Limit>
    

    (我不是 apache 专家,这可能不完全正确)

    【讨论】:

    • 我会补充一点,即使您似乎无法找到 where 这些方法被禁用,这仍然有效。 - 咳咳,刚刚找到,在 Debian 中它在 userdir.conf 中。
    • 我应该把.htaccess文件放在哪里?
    猜你喜欢
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 2018-02-19
    相关资源
    最近更新 更多