PHP_AUTH_USER未设置?
由于某种原因,内部没有任何代码
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) { // When the above is set, the code that is here will execute of course } 正在为我执行。 当我input正确的用户名和密码时,再次popup授权提示框。 如果这两个字段是正确的,那么这两个字段都不会被设置? 但由于某种原因,情况并非如此。 我能做什么错了? 谢谢。
在CGI模式PHP中使用HTTP Basic Auth有一个“明智的方法”:在.htaccess中使用
 RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
并在PHP使用
 list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); 
尝试这个
 <IfModule mod_rewrite.c> RewriteEngine on RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] </IfModule> 
在您的.htaccess文件,你将不得不放置到根目录
接着
 list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); 
在你的PHP脚本的开始
我在Ubuntu 14.04下使用了PHP-PFM + Apache 2.4下的Symfony 2.5.7,并且要使BASIC_AUTH正常工作,我还需要通过添加以下内容来正确configurationApache VirtualHost:
SetEnvIf Authorization“(。*)”HTTP_AUTHORIZATION = $ 1
 试试$_SERVER['REMOTE_USER'] 。 这适用于我在PHP 5.3 CGI + Apache安装。 
如果用户访问被授予在URL中提供用户名/密码,请检查是否
 AuthType Digest 
有权在您的VHost / Directory / .htaccessconfiguration。
这固定了我的用例。
 在我的phpinfo()Sever API是CGI / Fast CGI。 所以我已经解决了我的问题,在我的.htaccess文件RewriteEngine on RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] 
 在主机的服务器上,使用$_SERVER['REDIRECT_REMOTE_USER']而不是$_SERVER['PHP_AUTH_USER']