2012-01-16 113 views
0

我被困在我想要的URL,其中包含一些文件(HTML,SWF等)的文件夾,我驗證用戶後可訪問的情況。codeigniter控制訪問url /文件夾

例如。

URL訪問是:

A - http://mysite.com/files/version/1/file.swf

這上面的網址是從鏈接訪問,

乙 - http://mysite.com/view/1

我已經實施了一個從普通用戶隱藏URL A的方式,但是如果用戶以某種方式是半技術人員,則他可以從螢火蟲或其他工具知道swf文件的位置。所以,爲了使訪問文件安全,我該怎麼辦?

如果用戶以某種方式知道第一個URL(A),然後在瀏覽器中輸入它,我必須檢查用戶是否已登錄,如果驗證完成,則允許加載URL A.

因爲在CI中,控制器名稱不能與根目錄中的文件夾名稱相同,在這種情況下,我不能有一個名爲「files」的控制器。所以,使這個安全訪問url工作的唯一選擇是使用htaccess規則/ cond。如果這是唯一的選擇,那麼如何通過htaccess來實現,如果沒有,那我還有什麼其他的選擇。

請問CodeIgniter的URI路由工作,因爲當我試圖像這樣:

$路線[「文件/版本/ 1 /(:任何)」] =「查看/ $ 1」;

,它不工作,也許是因爲沒有控制器/功能/參數爲文件/版本/ 1 ...

尋找快速的幫助。謝謝

回答

2

沒有一個確定的方法來做到這一點,例如,使用.htpasswd。

你可以實現的一件事是「安全通過默默無聞」。在這種情況下,您可以將所有請求重定向到文件的URL http://mysite.com/view/file-id,然後直接加載請求的文件,而不是直接加載.php模板和相應的頭文件 - 無論是圖像,Flash文件還是其他文件。

但它的確依賴於文件將如何管理,因爲每個文件都需要數據庫中的一個條目,並且您必須爲不同類型的文件輸出不同的標題。如果有人仍然設法猜測文件的路徑,它可以直接訪問。