當使用Apache的SetHandler強制所有內容請求通過PHP身份驗證腳本(Apache 2.2.15,PHP 5.3.3)時,我遇到無限循環問題。Apache SetHandler PHP腳本重定向循環
我的目標是讓PHP身份驗證包裝器驗證用戶試圖訪問站點內的任何內容。因此,在包裝程序重定向到目標文件之前,將通過PHP包裝器發送對/securesite/securefile.html或/securesite/securefile.png(例如)的任何請求。
這是Apache的配置:
DocumentRoot /data/www/default
Action VerifyAuth /_auth/authenticate_test.php
<Directory "/data/www/default/securesite">
SetHandler VerifyAuth
Order allow,deny
Allow from all
</Directory>
測試認證PHP腳本/數據/ WWW /默認/ _auth):
<?php
header("Location: ".$_SERVER['REQUEST_URI']);
exit;
?>
測試目標文件是一個簡單的HTML文件(/ securesite /securefile.html):
<html><body>index.html</body></html>
實際身份驗證腳本中有更多的深度,但我試圖在我解決問題時,可以將此問題分解爲最簡單的形式。
我試圖使用「php_value auto_prepend_file /data/www/default/_auth/authenticate_test.php」,但是這在刷新網站內的頁面時產生了問題。
使用這種方法創建了一個循環,瀏覽器將出錯。 Apache訪問日誌以「GET /securesite/securefile.html HTTP/1.1 302」的形式顯示對目標頁面的重定向嘗試。
任何想法是什麼導致這個循環和修復將是什麼?謝謝。
更新:我相信我已經解決(至少部分)通過刪除標題行強制重定向到預期的頁面,而只是'需要'的預期內容。
<?php
require($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']);
exit;
?>
我需要測試這樣做時,作爲各種內容,如SVN網站的包裝的影響...我現在要做的一些。