PUT请求403禁止

时间:2014-09-06 03:38:33

标签: laravel-4 apache2 mamp

使用laravel开发API。

在PUT请求中获取403禁止。

在远程服务器上运行,但不在本地运行。将MAMP用于本地服务器。

这是我的虚拟主机,我什么都没看到。

<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot "/Users/dg/Documents/Websites/domain.com/public_html/dev/public_html" ServerName domain.local ServerAlias www.domain.local <Directory /> Options Indexes FollowSymLinks AllowOverride All </Directory> ErrorLog "/Users/dg/Documents/Websites/domain.com/public_html/dev/error_log" CustomLog "/Users/dg/Documents/Websites/domain.com/public_html/dev/access_log" common </VirtualHost>

我已经在SO上查看了其他类似的问题,但尚无解决方案。

3 个答案:

答案 0 :(得分:9)

在此处找到解决方案:https://serverfault.com/questions/275512/put-request-results-in-403-forbidden-need-apache-to-allow-put-requests

在文档根目录中添加了以下.htaccess:

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

答案 1 :(得分:0)

在我的vhosts文件中:

RewriteCond %{REQUEST_METHOD} !^(HEAD|GET|POST|PUT)$ [NC]

这允许了我。我尝试了所有其他解决方案,但无济于事。

答案 2 :(得分:0)

根据@drack的回答,我使用以下代码编辑.htaccess:

struct my_signal {
     my_codes::color  flag ;
     my_codes::origin  source ;
} ;

我完整的.htaccess文件是:

    <Limit GET POST PUT OPTIONS>
        Require all granted
    </Limit>
    <LimitExcept GET POST PUT OPTIONS>
        Require all denied
    </LimitExcept>

放置请求中的403错误消失了。