2017-08-10 126 views
0

我正在嘗試創建一個小網址,點擊後該網址會重定向到從預先確定的網址列表中隨機選擇的網址。我知道我可以通過HTML和Javascript實現這個服務器端,但我希望它完全可以從一個小的URL中起作用。微小的URL,從URL列表中隨機打開一個URL?

基本上如何http://www.5050.degstu.com/這樣做,但沒有主機限制或URL限制。

我幾乎失去了從哪裏開始,並感到驚訝,這還不存在。難以理解超出我理解的理由嗎?我對開發世界還比較陌生,可能無法完全掌握與此相關的複雜問題。

在此先感謝。

+0

當你說「點擊時」,這是否意味着用戶不能直接在瀏覽器的地址欄中輸入URL?如果你只是想在一個頁面上的鏈接,到一個隨機選擇的位置很容易,但鏈接元素本身不會有一個URL。 – nnnnnn

+0

@nnnnnn用戶應該可以將網址放在他們的地址欄中,或者點擊它作爲超鏈接,謝謝澄清 – Aleks

+0

你的意思是「純粹來自微型URL的功能」是什麼意思?基本上有幾個選項:A)HTTP重定向(例如HTTP 302 - 暫時移動)。 B)刷新元標記(HTML)或刷新HTTP標題。 C)隨機頁面託管一個iframe。 D)客戶端的Javascript刷新。 E)充當HTTP代理/負載均衡器,並自己連接到其他站點並回送其內容。 – PMV

回答

1

在頁面將這個腳本中的TinyURL的導致:

var urls = ['url1', 'url2', 'url3']; 

var url = urls[Math.floor(Math.random() * urls.length)]; 

window.open(url, '_self'); 

它選擇從URL列表隨機URL,然後打開它在同一個標​​籤。

+0

謝謝。有沒有辦法實現這一點,而不依賴於必須在頁面HTML中的服務器端腳本?我認爲這就是發生了什麼.. – Aleks

+0

你有權訪問小網址導致的頁面嗎? – alexm

+0

我可以爲此目的創建一個登錄頁面,但是我希望找到解決辦法,並使用TinyURL簡單重定向。 – Aleks

0

讓我們來看看如果你有興趣5050如何做。

我只是做了一個快速的和記錄我與小提琴手的連接。下面是我的了:

請求:

GET http://5050.degstu.com/v.php?l=qmf72tfeaya5y78 HTTP/1.1 
Host: 5050.degstu.com 
Connection: keep-alive 

(這不是真正相關的其他標題)

響應:

HTTP/1.1 302 Moved Temporarily 
Server: nginx/1.12.1 
Date: Thu, 10 Aug 2017 03:39:24 GMT 
Content-Type: text/html 
Content-Length: 0 
Connection: keep-alive 
Location: http://www.vimeo.com 

所以他們使用選項A,從我的評論 - 服務器保留了某種與「qmf72tfeaya5y78」匹配的兩個URL(YouTube和Vimeo的主頁)的數據庫,然後服務器發回一個HTTP 302來告訴我的瀏覽器重定向到其中的一個頁面。

+0

這真是太好了,謝謝你的解釋,現在更有意義! – Aleks