Apache2 HTTP_AUTHORIZATION 为空
时间: 2024-05-13 13:14:39 浏览: 8
如果你使用 Apache2 作为 Web 服务器,并且在 PHP 脚本中无法获取 HTTP_AUTHORIZATION 变量,可能是因为 Apache2 默认情况下不会将 Authorization 头部发送给 PHP。你可以尝试在 Apache2 的配置文件中添加以下代码:
```
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
```
这将启用 mod_rewrite 模块,并将 Authorization 头部发送给 PHP。如果你已经启用了 mod_rewrite 模块,请确保将上述代码添加到正确的位置。
另外,如果你使用的是 FastCGI 或 CGI 版本的 PHP,请确保在 php.ini 文件中启用了 cgi.fix_pathinfo 参数。将其设置为 1 即可。这将确保 PHP 能够正确地解析 URL,并将 Authorization 头部发送到 PHP 脚本中。
相关问题
Apache2 获取不到 HTTP_AUTHORIZATION
如果你使用Apache2作为Web服务器,并且无法从HTTP头中获取到HTTP_AUTHORIZATION变量,可能是因为mod_rewrite重写规则将它截断了。
要解决这个问题,你可以在.htaccess文件中添加以下规则:
```
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
```
这将在HTTP_AUTHORIZATION变量中设置值,并确保该值不会被mod_rewrite截断。
Apache2 获取不到 HTTP_AUTHORIZATION如何编写 .htaccess
如果你使用 Apache2 作为 Web 服务器,并且需要在 .htaccess 中获取 HTTP_AUTHORIZATION,则需要在 .htaccess 文件中添加以下行:
```
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
```
这个规则会将 HTTP Authorization 头部的值存储在名为 HTTP_AUTHORIZATION 的环境变量中,然后你可以在你的 PHP 脚本中使用 $_SERVER['HTTP_AUTHORIZATION'] 来获取它。
请注意,你需要启用 mod_rewrite 模块来使这个规则生效。你可以使用以下命令来启用 mod_rewrite 模块:
```
sudo a2enmod rewrite
```
然后,重启 Apache2 服务器以使更改生效:
```
sudo systemctl restart apache2
```
希望这可以帮助你解决问题。