所以我需要找到一種方法來使用PHP來啓用對.htacess保護的.html文件的訪問。當前的設置依賴於mod_auth_ldap,允許用戶查看.html文件。PHP to .htacess protected html
我想創建的設置將會有一個用戶登錄的php腳本,然後允許他們訪問.html文件,同時保留當前的安全級別並利用現有的結構。
簡而言之:我需要將驗證從PHP傳遞到Apache2。這可能嗎?
所以我需要找到一種方法來使用PHP來啓用對.htacess保護的.html文件的訪問。當前的設置依賴於mod_auth_ldap,允許用戶查看.html文件。PHP to .htacess protected html
我想創建的設置將會有一個用戶登錄的php腳本,然後允許他們訪問.html文件,同時保留當前的安全級別並利用現有的結構。
簡而言之:我需要將驗證從PHP傳遞到Apache2。這可能嗎?
經過大量工作,感謝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是找到此解決方案不可或缺的部分,爲此我感謝大家。
您可以讓PHP來處理auth,然後登錄詳細信息將繼續由瀏覽器標題發送,併爲mod_auth_basic的.htaccess工作。這意味着你的用戶必須通過醜陋的瀏覽器登錄窗口來登錄,而不是一個很好的HTML/CSS。
我應該早些時候解釋這一點,但我使用散列共享密鑰來通過另一個網站的身份驗證......不幸的是,圍繞網站的政治阻止我將它們託管在一個域中。 –
不是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
看起來不錯。不知道我將如何包裝的PHP ...也許包括HTML?但看起來它確實可以工作。 –