這是一個跟進這個問題Apache directory directive authentication based on Perl CGI::Session阿帕奇重寫規則來檢查登錄和重定向到
Alias /files /myData/all
<Directory /myData/all >
RewriteEngine On
RewriteBase/
RewriteRule ^(.*)$ cgi-bin/checklogin.pl?url=/files/$1 [L,R]
Options +Indexes
</Directory>
/文件是一個目錄列表。
我編輯了指令,以便如果用戶轉到webserver/files /他們被重定向到checklogin.pl,它會檢查會話的存在。如果有一個,它應該重定向到?url,否則它會將它們帶到登錄頁面。
第一部分工作。重定向到$ url會導致循環。
my $url = $cgi->param("url");
my $cookie = $cgi->cookie('mysession');
if(!$cookie){
$session = new CGI::Session();
print $session->redirect('/loginpage.html');
}else{
# HOW DO I display folder or files now?
$session = new CGI::Session(undef, $cookie, {Directory=>'/tmp/'});
print $session->redirect($url);
}
我,很明顯,得到一個重定向循環錯誤阿帕奇
This webpage has a redirect loop
你爲什麼要設置你的cookie立即過期? – ThisSuitIsBlackNot
這是無關緊要的我已經刪除它,在這種情況下,沒有現有的cookie – Jabda
你不包括你的cookie在響應頭,所以用戶永遠不會得到它。 – ThisSuitIsBlackNot