2011-10-25 30 views
1

I無法使用基本HTTP身份驗證在安裝並作爲FCGI工作的PHP中工作。當PHP作爲模塊安裝時,它可以很好地工作。使用PHP作爲FCGI運行的HTTP身份驗證

有什麼辦法可以讓它工作?

我在ubuntu中運行PHP版本5.2.6。

<?Php 
if (!$_SERVER['PHP_AUTH_USER']) { 
    $this->getResponse()->setHeader('WWW-Authenticate', 'Basic realm="Testing"'); 
    $this->getResponse()->setBody('Unauthorized'); 
    $this->getResponse()->setHttpResponseCode(401); 
} else { 
    var_dump($_SERVER['PHP_AUTH_USER']); 
    var_dump($_SERVER['PHP_AUTH_PW']); 
} 

我曾嘗試

[Rewrite rule on .htaccess] 
RewriteEngine on 
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L] 

[user:pass on PHP-script] 
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':',  base64_decode(substr($_SERVER['REDIRECT_REMOTE_USER'], 6))); 

,但它似乎沒有奏效。

+0

FWIW,我最近研究了同樣的東西,看起來它不起作用。如果有人可以回來的解決方案,我會喜歡它。 – deceze

+0

你的第一個代碼片段看起來像一個方法的一部分 - 但沒有類? – symcbean

回答

2

一些有趣的事情(和確認一下剛纔說的)刪除您的.htaccess,寫一個新的這一行:

SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0

和你的PHP會正常工作。

+0

我剛剛在我的'.htaccess'中添加它作爲第一行,它也起作用。 – Martijn

相關問題