我正在使用PHP的 http_response_code 在我的应用程序中返回各种回复。
但是,发送 401 响应代码会导致我在浏览器中看到 403 响应。以下是相关代码:
test.php的
<?php
http_response_code(401);
?>
以下是回复:
401 stated
其他代码按预期工作。使用:
<?php
http_response_code(404);
?>
结果为:404 stated (censorship mine ofc)
以下是我的尝试:
- 用标题取代了http_response_code(401)(&#34; HTTP \ 1.0 401 Unauthorized&#34;)
- 为401(无)的ErrorDocument规范提供每个Apache配置文件
- 在 test.php 所在的目录中添加了一个.htaccess文件,其中包含&#34; ErrorDocument 401&#34;我应该在401回复中看到这个&#34;
更多(可能)相关说明:
- 我知道401响应通常用于请求身份验证(您应该获取该用户名和密码字段吗?)
- 我在使用提供的用户名/ API密钥组合验证失败时使用它
- 在用户通过验证后,当他们尝试访问他们没有权限的资源时,我也会在应用中稍后使用http_response_code(403)
- 编辑#1:// 我通过CLI和cURL尝试了此操作并收到了标题&#34; HTTP / 1.1 403 Forbidden(服务器拒绝了指定的统一资源定位器(URL)。联系服务器管理员。)&#34;
- 修改#2:// 将
RewriteRule foo - [R=401]
添加到文档根目录中的.htaccess
文件中 - 访问/foo
我的最后一个问题是 - 到目前为止我检查过哪些可能导致这种行为?