使用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上查看了其他类似的问题,但尚无解决方案。
答案 0 :(得分:9)
在文档根目录中添加了以下.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错误消失了。