2011-08-16 34 views
1

是否可以通過自定義表單來保護Apache上的目錄?我有一個充滿靜態HTML文件的目錄,它基本上是一個完整的靜態網站。我想用密碼保護這個網站。是否可以使用自定義表單來保護Apache上的目錄?

我知道我可以使用.htaccess,但我寧願有一個自定義表單/數據庫來保護網站。我知道如何在PHP中編寫足夠好的代碼來創建表單,數據庫並進行身份驗證。我不知道的是,如果用戶未通過身份驗證,如何告訴Apache重定向到該表單。

更新:我會很好,使用其他身份驗證模塊。我正在尋找一個類似於IIS Forms身份驗證的系統。如果用戶未登錄,則訪問目錄中的任何文件將重定向到登錄表單。登錄後,他們可以查看目錄中的任何文件。

+0

是,重寫這個目錄中的所有請求到PHP/Python的/任何一種語言腳本,並驗證。如果用戶被允許訪問,該腳本將打印請求文件的內容,否則顯示登錄表單。 Apache不知道有關身份驗證的任何信息,它只是重寫所有請求。 –

+0

@DanGrossman - Apache必須知道有關身份驗證和會話才能工作的.htaccess。 – Justin808

+0

不,不,你爲什麼這麼說? HTTP基本認證是完全無狀態的,服務器上沒有會話。 –

回答

1

僞代碼如下:

if user authenticated: 
    read a file and output into browser (or return 404) 
else: 
    show the form 
end 

以下.htaccess將每個請求改寫爲.html文件到index.php

RewriteEngine on 
RewriteCond %{REQUEST_URI} \.html$ 
RewriteRule \.html$ /index.php [QSA,L] 

你會找到你要求.html文件名中$_SERVER['REDIRECT_URL']

(大多數已知的PHP框架的使用這種或類似的做法。沒有任何幻想的意味。)

相關問題