我需要提供一個文件生成每個客戶獨特的URL下載同一個文件
example.com/realpathofthe/file.zip
給客戶,但我不希望同樣的URL傳達給所有客戶(他們可以很容易地共享URL非 - 客戶,並且很難跟蹤產品是否交付)。相反,我產生在PHP中的隨機字符串,並希望分享這樣的URL:
example.com/download/djbf6xu83/file.zip
,這將是爲每個客戶不同的。
問題:我應該爲每個客戶生成符號鏈接,以將隨機字符串路徑鏈接到服務器上實際文件的路徑嗎?
或者在.htaccess中爲此使用RewriteRule?但如果這樣做(即重寫/download/*/file.zip
到實際文件),所有隨機字符串將鏈接到相同的文件。這不好,因爲非客戶可以自己生成下載鏈接。 如何正確處理?
注意:我希望儘可能避免PHP在交付之前處理千兆字節的文件數據(通過file_get_contents()
)。我想(如果我錯了,請糾正我)讓服務器讓Apache分發文件更輕。
將隨機字符串存儲在數據庫中。然後使用重寫規則重定向到一個PHP腳本,它將得到隨機字符串並將其與您的數據庫匹配,然後如果可以,發送文件。該文件始終是相同的,但您的腳本將驗證隨機字符串。 – Armage
爲什麼不將RewriteRule用於PHP腳本文件,並檢查隨機字符串在那裏是否有效? – Fredster
@Armage是的,但是PHP在傳遞之前必須處理千兆字節的文件數據(通過'file_get_contents()')。有沒有辦法避免這種情況,讓Apache分發文件? – Basj