【问题标题】:Enable PUT and DELETE methods on Apache 2.4在 Apache 2.4 上启用 PUT 和 DELETE 方法
【发布时间】:2016-09-25 21:02:17
【问题描述】:

我想在 Linux 下的 Apache 2.4 上启用 PUT 和 DELETE 方法。当客户端尝试调用此类方法时,我得到“405 Method Not Allowed”作为答案。

在服务器端,我的 PHP 脚本处理此类请求,但它似乎被服务器本身过滤(这与已经回答的类似问题有所不同——此外,其他问题似乎指的是旧版本的 Apache)。

我可以管理 .htaccess 文件的一些配置,还是必须修改 /etc/apache2 下的 .conf 文件?

非常感谢。

【问题讨论】:

标签: apache lamp


【解决方案1】:

在您的服务器上尝试以下更改:

打开“/etc/httpd/conf/httpd.conf”并查找以下块:

<Limit GET POST OPTIONS PROPFIND>
  Order allow,deny Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
   Order deny,allow Deny from all
</LimitExcept>

然后只需在 PROPFIND 之后添加 PUT 和 DELETE。然后通过“/sbin/service httpd restart”或者service httpd restart重启httpd。

注意:在某些服务器中,主要是带有控制面板(DA,cPanel,..)的服务器,您可以更改此文件:/etc/httpd/conf/extra/httpd-directories.conf

希望它能解决你的问题。

【讨论】:

    【解决方案2】:

    您可以使用allowmethods_module 来启用它。

    它从 apache 2.3 版开始可用,但仍处于试验阶段。

    <Location "/path/to/directory">
       AllowMethods PUT DELETE
    </Location>
    

    【讨论】:

    • 感谢您指出 AllowMethods,但正确的语法是 AllowMethods PUT DELETE
    • 谢谢@elmicha;更新了!
    【解决方案3】:

    对于 Debian/Ubuntu。

    在你的conf

    <Location "/">
        AllowMethods GET PUT
    </Location>
    

    在控制台中:

    sudo a2enmod allowmethods
    sudo systemctl restart apache2.service
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-01
      • 2015-05-08
      • 1970-01-01
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      相关资源
      最近更新 更多