2011-05-13 36 views
0

所以我需要找到一種方法來使用PHP來啓用對.htacess保護的.html文件的訪問。當前的設置依賴於mod_auth_ldap,允許用戶查看.html文件。PHP to .htacess protected html

我想創建的設置將會有一個用戶登錄的php腳本,然後允許他們訪問.html文件,同時保留當前的安全級別並利用現有的結構。

簡而言之:我需要將驗證從PHP傳遞到Apache2。這可能嗎?

回答

2

經過大量工作,感謝cainmi的建議,我提出了一個解決方案。 我對保護目錄的.htaccess看起來像這樣

RewriteEngine On 
RewriteBase /php-wrapper/auth 
RewriteRule ^(.*) /php-wrapper/wrapper.php?topage=https://%{SERVER_NAME}/php-wrapper/auth/$1 

這傳遞請求回我的PHP腳本檢查驗證,如果它通過執行以下操作

$type = (get_object_vars(apache_lookup_uri("$abs_path"))); 
header('Content-type: '.$type['content_type']); 
readfile($abs_path); 

與文件和響應適當的MIME類型

因爲我服務的一些內容有XML,我不得不禁用短打開的標記。我通過將此行添加到包含該包裝器的目錄的.htaccess來實現此目的。

php_value short_open_tag 0 

Stackoverflow是找到此解決方案不可或缺的部分,爲此我感謝大家。

1

您可以讓PHP來處理auth,然後登錄詳細信息將繼續由瀏覽器標題發送,併爲mod_auth_basic的.htaccess工作。這意味着你的用戶必須通過醜陋的瀏覽器登錄窗口來登錄,而不是一個很好的HTML/CSS。

+0

我應該早些時候解釋這一點,但我使用散列共享密鑰來通過另一個網站的身份驗證......不幸的是,圍繞網站的政治阻止我將它們託管在一個域中。 –

+0

不是100%確定這是如何工作的,但看看[this](http://www.askapache.com/htaccess/tricks-for-controlling-htaccess-basic-authentication-with-php-and-mod_rewrite。 HTML#M0-askapache0)。 – 2011-05-13 05:28:30

+0

看起來不錯。不知道我將如何包裝的PHP ...也許包括HTML?但看起來它確實可以工作。 –