2017-06-22 36 views
0

我有一個子文件夾,用於保存用戶上傳的文件。我想重定向所有直接文件請求到這個文件夾到另一個.php腳本...所以我可以檢查用戶是否登錄之前,我發送/顯示文件給他。 例如:重定向直接訪問子文件夾中的文件到腳本

/mainsite/uploads/user/2324/file.pdf 

需要轉發到

/mainsite/uploads/permissions.php 

但我需要的permissions.php裏面能夠做到:

$url = $_SERVER['REQUEST_URI']; 

,看看是初始請求...爲了readfile()文件在所有'檢查'之後。

我已經試過這樣:

RewriteEngine On 
RewriteRule ^/uploads/user/?$ /uploads/permissions.php [R=301,L] 

但是這僅僅是一個簡單的轉發......我沒有想法是什麼文件或文件夾請求的用戶。

我知道我可以通過在'user/{userid}'下創建的每個文件夾中創建個人htaccess文件來做到這一點,但我想要一個更簡單的功能。我不想擁有10000個htaccess文件,如果我只用一個就可以做到這一點。

感謝

回答

1

嘗試用這種語法:(我加了R = 301的一部分,這是不是在我的版本需要的,所以它不是完全測試,而R選項工程)

RewriteRule "^/uploads/user/(.+)$" "/uploads/permissions.php?file=$1" [R=301,QSA,L] 

您可以在permissions.php的$ _GET數組中獲取您的file var。但是,我不建議直接使用這個值,因爲它可能是不安全的。最好的方法是隻允許固定值,例如switch,之前已經將var過濾爲字符串。

+0

不錯!它沒有「」引號。是的,我知道,我正在檢查請求的文件的擴展名,以查看它的文檔/圖像/等,如果不是我拒絕請求。此外,我強制發送'上傳'爲根目錄的文件,所以沒有有趣的業務:) 謝謝 – user1033882

相關問題