各种Apache模块将剥离 Authorization 标题,通常用于“安全原因”。它们都有不同的模糊设置,你可以调整以否决这种行为,但你需要确定哪个模块应该归咎于哪个。
Authorization
您可以通过env将标头直接传递给PHP来解决此问题:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
也可以看看 Zend Server Windows - 授权标头未传递给PHP脚本
这花了我很长时间才破解,因为它没有在mod_proxy或mod_proxy_fcgi下记录。
将以下指令添加到apache conf或.htaccess:
CGIPassAuth on
看到 这里 详情。
我没有找到任何与mod_proxy_fcgi类似的设置但是它默认对我有用。它要求用户授权(.htaccess像往常一样)并且php获取它,并且与mod_php或fastcgi和pass-header一样工作。我不知道我是否有帮助......
编辑: 它只能在teszt.com/上使用DirectoryIndex ...如果我传递php文件名(即使index.php!)它只是不起作用,不要将auth传递给php。这对我来说是一个拦截器,但我不想降级到apache 2.2(和mod_fastgi)所以我迁移到nginx(在这台机器上也是如此)。