我想爲http://models.example.com/*
所有請求改寫爲http://models.example.com/handler.php?requested_url=*
Mod_rewrite爲會話控制「handler.php」?
然後,handler.php
會檢查我的$_SESSION
變量,看看用戶是否登錄。如果用戶已登錄,然後handler.php
會重定向到requested_url
。
如果用戶未登錄,則handler.php
將使用正則表達式來查找requested_url
與許可規則數組(ruleList.php
)之間的匹配項。如果handler.php
看到允許未登錄用戶訪問requested_url
的規則,則它將重定向到requested_url
,否則它將重定向到登錄頁面。
我的問題是這樣的:我如何區分初始請求和重定向? (以避免無限循環)。我可以附加一個變量,如&already_processed=true
,但這是完全不安全的。
我會使用mod_auth,但問題是我希望可以通過網站的管理面板(ruleList.php
)設置權限。權限規則可能很複雜,而且設置它們的人不應該在服務器的httpd.conf文件中徘徊。 mod_auth的另一個問題是更改需要重置服務器。
我很感謝在這個問題上的任何輸入!
感謝您的回覆。當我寫「會重定向到」時,我應該說「會重寫」,但我確信你的答案仍然適用。我正考慮通過在.htaccess中使用cookie來解決您提到的問題,正如本頁所述:http://www.willmaster.com/blog/contentprotection/htaccess-cookie.php –
是的,但是Cookie有點像一個查詢參數(更好一點),所以不要指望超級安全。但Cookie用於HTTP會話管理,所以我會說它看起來不錯。 – hakre