2017-08-10 75 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