2017-08-10 31 views
0

小さなURLを作成しようとしていますが、これをクリックすると、あらかじめ決められたURLリストからランダムに選択されたURLにリダイレクトされます。私は、HTMLとJavascriptを使ってこのサーバー側を実現することができますが、小さなURLから純粋に機能するようにしたいと思います。URLのリストからURLをランダムに開く小さなURLですか?

基本的にどのようにhttp://www.5050.degstu.com/が実行されますが、ホストの制限やURLの制限はありません。

私はどこから始めればいいのか分からず、これはまだ存在していないことに驚いています。私の理解を超えて理由を作ることは、単に不可能なのでしょうか?私は開発者にとってまだ比較的新しいので、これに伴う複雑さを完全には把握していないかもしれません。

ありがとうございます。これは、URLのリストからランダムにURLを選択し、同じタブで開きます

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

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

window.open(url, '_self'); 

+0

「クリックしたとき」と言えば、ユーザーはブラウザのアドレスバーに直接URLを入力できません。ランダムに選択された場所に移動するだけのページにリンクが必要な場合は、リンク要素自体にはURLはありません。 – nnnnnn

+0

@nnnnnnユーザーはアドレスバーにURLを入力するか、ハイパーリンクとしてクリックする必要があります。 – Aleks

+0

「小さなURLからの純粋な機能」とはどういう意味ですか?基本的には、次の2つのオプションがあります。A)HTTPリダイレクト(HTTP 302 - 一時的に移動)。 B)Refreshメタタグ(HTML)またはリフレッシュHTTPヘッダー。 C)ランダムなページでiframeをホストする。 D)クライアント側のJavascriptリフレッシュ。 E)HTTPプロキシ/ロードバランサとして機能し、他のサイトに自分自身で接続してコンテンツを返します。 – PMV

答えて

1

はTinyURLのがにつながることをページ内のスクリプトでこれを入れてください。

+0

とにかくこれを達成するためには、ページのHTMLに含まれなければならないサーバー側のスクリプトに依存しないでください。私はここで起こっていることだと思う。 – Aleks

+0

小さなURLにつながるページにアクセスできますか? – 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を使用しています私のコメント - サーバーは、私が与えた2つのURL(YouTubeとVimeoのホームページ)に "qmf72tfeaya5y78"と一致する何らかの種類のデータベースを保存してから、サーバーがHTTP 302を送り返してブラウザにリダイレクトするよう指示しますそれらのページの1つに移動します。

+0

これは素晴らしいことですが、説明してくれてありがとうございます。 – Aleks