2011-09-12 66 views
1

我已經與一家知名託管公司談過跟蹤對CDN文件的請求,但他們不提供此功能。在CDN文件上跟蹤請求

我想要做的就是允許用戶上傳CSS文件/純CSS,把這個文件或原始CSS放入CDN,然後我會給用戶一個唯一的鏈接到他們的文件,所以他們可以執行諸如<link rel="stylesheet" href="http://myCDN.com/uniquelink.css">之類的操作,並將文件輸出爲有效的CSS。這是相對簡單的,但我需要跟蹤對文件進行收費的請求數量。我怎樣才能做到這一點,而不是讓他們先通過一個PHP腳本(它擊敗了給他們一個快速的CDN鏈接的對象)?

歡迎任何建議。

回答

1

如果你排除了你控制的中間腳本,那麼我相信你唯一的選擇是使用讀取服務器日誌的普通統計數據。這意味着你(或某人在這裏可能知道一個)需要找到一個CDN提供商,支持跟蹤(或可以訪問的網站統計信息)

0

而不是給用戶的真實鏈接,在您的服務器上創建一個頁面記錄請求,然後重定向到真正的鏈接。

一個例子:

用戶加載的css文件到CDN和CDN給你的鏈接:

www.myCDN.com/?id=123 

,而不是直接給這個網址到你的用戶,你可以給他的東西像:

www.mysite.com/track_css.php?url=www.myCDN.com%2F%3Fid%3D123 

,或者如果你願意,你可以在CDN鏈接保存到數據庫中,並使用一個ID識別它,這樣的網址會是這樣的

www.mysite.com/track_css.php?file_id=123 

在track_css.php你可以保存你想要的任何信息(IP的,日期,用戶代理等)後,重定向到CDN的實際文件,或者...... retreive內容和顯示它直接

希望這有助於

編輯:沒看到「沒有得到他們要經過一個PHP腳本第一」,= P所以,別提

1

我gunna不得不同意Blai r McMillan,你最好的選擇是找到一個能讓你檢查訪問日誌的CDN。

雖然如果這確實不是一種選擇,那麼您可以嘗試的是CSS的@import功能。在您的CSS頂部,添加@import url("http://host.example.com/path-to-tracking-script.php?id=383");並且應該觸發您的跟蹤腳本的請求。 (如果你在那之後你顯然不能獲得HTTP REFERER。[編輯:因爲它總是你的CSS文件,而不是加載CSS文件的頁面])雖然我不知道可能對負載性能有什麼影響,但如果不想更改CDN,則可能需要進行測試。

+0

這是一個好主意,我是否也可以不將圖像回調追加到我的服務器到一個嵌入了其用戶ID的PHP端點? IE瀏覽器。 .api {background:url('http://myAPi.com?uid=12345')} – benhowdle89

+0

您必須確保它們在頁面上有一個使用該規則的元素。如果他們不這樣做,圖像將不會被下載。 (至少在Firefox中它不會。)我想到的東西是你可以設置一個非常通用的規則,然後用任何用戶提供的方式覆蓋它。說在body元素的頂部,但我不確定是否可以保證不會影響他們的頁面樣式。 (如果規則被立即覆蓋,我們也不能保證圖像會被下載,所有這些行爲都取決於瀏覽器。) – EPB