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
希望这可以帮助你解决问题。
boa 在cgi中获取不到 Authorization 是否需要修改配置文件
如果您在CGI中无法获取Authorization头部信息,可能是由于Web服务器未将该头部信息传递给CGI程序。您可以尝试修改Web服务器的配置文件,确保在CGI请求中Authorization头部信息被正确传递。
对于Apache服务器,您可以在httpd.conf或.conf文件中添加以下指令:
CGIPassAuth on
这将使Apache在CGI请求中传递Authorization头部信息。
对于Nginx服务器,您可以在nginx.conf或相应的虚拟主机配置文件中添加以下指令:
fastcgi_pass_request_headers on;
这将使Nginx在FastCGI请求中传递所有请求头部信息,包括Authorization头部信息。
请注意,在修改Web服务器的配置文件之前,请务必备份原始配置文件,以便在需要时可以恢复。
相关推荐
















