apache 缺少$_SERVER [“HTTP_ORIZATION”]

yws3nbqq  于 2023-10-23  发布在  Apache
关注(0)|答案(3)|浏览(122)

这是我的.htaccess文件:

RewriteEngine on

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php

即使我已经将下面的行添加到我的.htaccess文件中,我也无法访问$_SERVER['HTTP_AUTHORIZATION']

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

当我运行print_r($_SERVER)时,我找不到HTTP_AUTHORIZATION。我在谷歌上搜索了一个答案,但没有一个奏效。

kknvjkwl

kknvjkwl1#

我以前遇到过同样的问题,我通过在根目录下的.htaccess顶部添加这一行来解决

SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
8nuwlpux

8nuwlpux2#

如果您使用重写规则来传递此头-它可能以REDIRECT_为前缀尝试$_SERVER['REDIRECT_HTTP_AUTHORIZATION']
但由于2.0.13 Yii对此有一个抽象,我建议使用它:

  • Request::getAuthUser()获取用户。
  • Request::getAuthPassword()获取密码。
  • Request::getAuthCredentials()来获取两者。
1qczuiv0

1qczuiv03#

如果你运行Apache,它可以被检索:

$auth = array_change_key_case(apache_request_headers(), CASE_LOWER)['authorization'];

相关问题