2012-08-28 41 views
1

我們的下載服務器存在問題,希望通過htaccess解決。 我們的下載服務器是許多文件的目錄,zip|rar|mp3|wmv|flv擴展名,用戶不應該直接訪問它們。使用htaccess下載控件

我們希望這種情況:當每個用戶請求這樣的文件;我們將他重定向到一個頁面(例如download.php),然後更新我們有關該文件的統計信息,然後將其重定向到url(因此,只有此頁面可以下載文件)。

我搜索了一下,發現了一個語法,但看起來像是somthings錯誤! u能幫助我:

RewriteEngine on 
# Options +FollowSymlinks 
RewriteBase/
# CLOSE HOTLINKS 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?myserver.com/.*$ [NC] 
RewriteRule \.(mp3|wmv|flv|exe|rar|zip|jpg)$ http://mydownloadserver.com/download.php?url=$1 [L] 

與感謝米哈伊所以我們可以用這個htaccess文件解決我們的問題:

RewriteBase/
RewriteCond %{HTTP_REFERER} !^http://(www\.)?anotherAllowedDomain.com/.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?MyDownloadServer.com/download.php.*$ [NC] 
RewriteRule \.*.(mp3|wmv|flv|exe|rar|zip|jpg)$ http://MyDownloadServer.com/download.php?url=%{REQUEST_URI} [L] 

終於在處理 「的download.php」 的所有請求..

回答

1

也許你忘了所有的文件名:

RewriteRule \.*.(mp3|mp4)$ http://mydownloadserver.com/download.php?url=%{REQUEST_URI} [L] 

%{REQUEST_URI}將返回URI請求,你可以從那裏像(readfile()

+0

thanx Mihai ..%{REQUEST_URI}解決了我們的問題! :) – ProGrafr

0

使用try

deny from all 

在你的.htaccess中。您可以使用您的PHP頁面來執行某些操作並讓用戶下載該文件。

PS。如果我是你,我不希望這些用戶重定向到下載頁面,如果他們嘗試直接訪問文件。如果他們做了他們不應該做的事情,那麼在我的情況下它就是非法的。因此,如果他們嘗試直接訪問文件,我會向他們顯示禁止頁面。

+0

過程中我知道,我可以用拒絕和重定向所有403下載.php頁面,但是我們無法理解哪些頁面用戶來自!! – ProGrafr