我正在构建一个 RESTFUL API,需要让 Apache 接受 PUT 请求。每当我输入一个 URL 时,我都会收到一个403 Forbidden错误。
curl -X PUT api.example.com/api/foo
我试图将以下内容添加到我的虚拟目录中(无济于事):
<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>
还有哪些其他配置设置可能导致这种情况?
编辑
我正在重写我的 URL,全部重写到 index.php,如下所示:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !\.
RewriteRule ^(.*)$ /api/index.php/$1 [L,QSA]
小智 5
将其添加到此文件夹中的 .htaccess 文件中
-- 对于阿帕奇 2.2
<Limit GET POST PUT OPTIONS DELETE PATCH HEAD>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST PUT OPTIONS DELETE PATCH HEAD>
Order deny,allow
Deny from all
</LimitExcept>
Run Code Online (Sandbox Code Playgroud)
-- 对于阿帕奇 2.4
<Limit GET POST PUT OPTIONS DELETE PATCH HEAD>
Require all granted
</Limit>
<LimitExcept GET POST PUT OPTIONS DELETE PATCH HEAD>
Require all denied
</LimitExcept>
Run Code Online (Sandbox Code Playgroud)
注意:您可以删除不需要的方法
编辑:
将其添加到您的 Apache 配置中:
Script PUT /api/index.php
Run Code Online (Sandbox Code Playgroud)
这假设您的实际处理程序脚本被调用index.php并且位于/api.
| 归档时间: |
|
| 查看次数: |
14991 次 |
| 最近记录: |