只需查看以下代码片段。我在正在阅读的一个插件中遇到了这个问题。
if ( ! defined( \'ABSPATH\' ) ) {
header( \'Status: 403 Forbidden\' );
header( \'HTTP/1.1 403 Forbidden\' );
exit;
}
我知道此脚本正在向浏览器发送禁止的403标头响应,以进行未经授权的访问。但为什么是两个403头?第二种是对第一种的回退吗?只需查看以下代码片段。我在正在阅读的一个插件中遇到了这个问题。
if ( ! defined( \'ABSPATH\' ) ) {
header( \'Status: 403 Forbidden\' );
header( \'HTTP/1.1 403 Forbidden\' );
exit;
}
我知道此脚本正在向浏览器发送禁止的403标头响应,以进行未经授权的访问。但为什么是两个403头?第二种是对第一种的回退吗?发送状态的正确方式(当WordPress不可用时)是:
http_response_code( 403 );
请参见PHP Manual for its definition.但在插件文件中,这永远不应该是文件头顶部的“默认”代码。请参见Worthwhile to restrict direct access of theme files?进行讨论。
在WordPress中,使用status_header( 403 )
如果你需要的话。
关于您发布的代码的注释:
header( \'Status: 403 Forbidden\' );
header( \'HTTP/1.1 403 Forbidden\' );
第一行是对在CGI模式下运行的PHP的“特殊”处理,第二行是在不进行任何检查的情况下使用特定的HTTP协议版本。如果连接是通过HTTP 2或1.1进行的,那么这没有任何意义。两者都是错误的,因为发送正确状态的正确方法是header()
正在使用该函数的第二个和第三个参数。
所以这会更好:
header( \'Status: 403 Forbidden\', true, 403 );
第二个参数告诉PHP用相同的名称覆盖其他标题,第三个参数用于实际状态。你发布的代码很好counter-示例:)我跟踪了https://ubuntu.com/tutorials/install-and-configure-wordpress 在Ubuntu 20.04计算机上安装和配置wordpress。我可以访问示例站点/博客并在中管理/博客/wp管理员符合预期。我该如何更改它,以取代在/博客可以在以下网站上找到/或者只是http://myserver.example.com ?我早就料到了https://wordpress.org/support/article/changing-the-site-url/ 帮