2012-06-03 29 views
-1

嗯,我有一個小問題。我基本上擁有一個文件共享網站,並與人熱鏈接文件防止所有文件的熱鏈接沒有.htaccess

我試過.htaccess沒有運氣,因爲我想重定向熱鏈接到實際文件的下載頁面。

我已經看到其他網站這樣做,但我很困惑他們如何做到這一點。

一些使用cgi-bin腳本,但我同樣不知道這是如何完成的。

有沒有人有線索最好的做法是做什麼?

+0

爲什麼不使用'.htaccess'?這也可以用PHP腳本來完成,但是.htaccess文件將大大優於其他文件。 –

+0

文件保存在遠程服務器上,我將如何去解決這個問題。 – HarryBeasant

+0

你如何從你的網絡服務器訪問這些遠程服務器? – lanzz

回答

1

您可以編寫一個腳本來讀取Web服務器上的文件並將數據輸出到客戶端。在該腳本中,您可以通過檢查$_SERVER['HTTP_REFERER']值來驗證原點。

用於輸出文件的小例子:

<?php 
$filename = "file"; 
$filesize = filesize($filename); 
$handle = fopen($filename, "r"); 
$data = fread($handle, $filesize); 
header("Content-type: application/zip"); 
header("Content-length: " . $filesize); 
header("Content-disposition: inline; filename=" . $filename); 
echo $data; 
fclose($handle); 
?> 
+0

所有文件都存儲在遠程文件服務器上,這是否仍然有所作爲? – HarryBeasant

+0

如果訪問者看不到遠程服務器上的文件鏈接,他們將無法將它們熱鏈接 –

+0

他們只能檢查下載的來源....大多數瀏覽器都提供此功能。 – HarryBeasant

0

很簡單。永遠不要讓用戶看到實際文件的實際路徑。相反,通過一個PHP腳本將它提供給他們,並檢查一個會話以確保他們在提交文件之前通過了必要的步驟。

+0

而文件存儲在遠程服務器上,這仍然有可能嗎? – HarryBeasant

+0

盜鏈如何與將用戶重定向到其他服務器以獲取文件不同?提供文件的腳本應與文件位於同一臺服務器上。 –

+0

的確,我應該使用一個簡單的PHP文件或類似CGI,Perl或Ruby – HarryBeasant