问题标签 [url-shortener]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
10507 浏览

php - Base10 到 base64 网址缩短

我正在为我正在学习 php 的项目编写一个 url 缩短函数,这是代码(顺便说一句,我想这global不是一件好事:P):

代码取自这篇 Wikipedia 文章 并改编为 php。我的问题是,当我将 64 的倍数传递给函数时,我得到了错误的(出于我的目的)结果,例如 128 返回的 b 不正确,它应该是 aaa,但对于 3 位数字来说太长了数字。

另外我开始认为这段代码有问题,如果我在$id得到 nItOq 时通过 1'000'000'000'000... 我觉得这是错误的,因为像 bit.ly 这样的 url 缩短服务返回 6 number id 如果我使用它,我认为这个算法并不比他们的更好。

所以,两个问题:

  • 你在上面的代码中发现任何错误吗?
  • 如何管理 64-multiple ids?我是否必须忽略它们并传递给下一个?
0 投票
0 回答
210 浏览

unicode - 使用 unicode 转换 id 的 url 缩短?

我需要为工作制作一个 url 缩短器,所以我试图找出在尽可能小的 id 字符串中提供尽可能多的链接的最佳模式。

我曾想过将 unicode 字符转换为位值以用作简单数据库的 id——这可能吗?是否有任何特定的 unicode 字符根本不会中继到服务器?我可以按原样访问原始地址字符串,以准确找出输入的 url,但我需要确保应该存在所有内容都在那里。# 是我不确定的一个具体例子;它是一个客户端功能(锚点),我不知道它是否真的到达了服务器。

我不需要对生成的 id 有任何随机性,我只是想从最低的 unicode 位值增加到最高值,基本上每个字符都有成千上万的可能性。

感谢任何建议、帮助或代码示例。:)

0 投票
3 回答
696 浏览

.net - Twitter 害怕我冗长的网址 - 必须缩短它![C#]

我有一个网站,每次我们的一个客户评论新产品时,它都会自动发布到公司的 Twitter 帐户上。

对于实际的推文,我直接使用 twitter api,没有任何包装类和库。一切正常,除了,当帖子太长时,它不会被推特,因为推特只有 140 个字符限制(我的小侄子可以处理比这更多的字符!)

那么像 bit.ly 或 tinyurl 这样缩短 url 的最佳方法是什么?他们提供一些 api 的 .net 用户吗?还是 twitter 有一些 url 缩短服务?

我本可以对此做点什么,但我真正想要的是专家意见,在这种情况下最好的做法是什么。

ps:这里有几个密切相关的问题,但对于我的情况来说,没有什么足够接近的。

0 投票
1 回答
188 浏览

.htaccess - htaccess,缩短的 url 不应匹配文件

我的 apache2 和 .htaccess 规则有点问题。

例如:
我有一个缩短的 uri

必须由重写器重写,在 php 文件中重定向以显示站点地图。问题是,在根文件夹中存在一个名为 sitemap.xml 的文件。我的 apache 自动调用 sitemap.xml 文件,但我不希望这样。仅当 uri 为

调用缩短的 URI 时是否有可能避免调用此文件?

这只是一个例子。有些文件需要位于根文件夹中,并且不能从那里移动到子文件夹中(这将是解决此问题的最简单方法,但在我的情况下这是不可能的)。要求这些文件可由 uri 调用。

有谁知道如何解决这个问题?

我当前的 .htaccess 文件

非常感谢!

0 投票
7 回答
502 浏览

email - 替代通过电子邮件发送长 URL?

我有一个 Web 应用程序,它使用如下所示的 URL:

http://library.example.com/Register.aspx?query=academic&key=586c70bb-5683-419c-aae9-e596af9ab66a

(使用 GUID 而不是普通的 int 来阻止猜测,这是我们现在所需要的。)

问题:通过电子邮件发送时,长 URL 经常中断。是人发送电子邮件,所以我无法控制格式。有时是发送电子邮件程序有问题,有时是接收程序有问题,但不管我花太多时间与人们讨论解决问题。

一切都必须来自这个域,所以我不能使用第三方缩短器。我可以主持自己的,但这似乎是一个杂项。

有什么建议么?

编辑

@Sunny:感谢您的详细说明,但我的情况与您的假设不同。公司客户(我的)将此 URL 传递给其员工,他们使用它来访问品牌注册页面。作为注册的一部分,他们需要提供工作电子邮件,然后将其转发给公司主管。

注册使他们能够访问数据库,但他们所看到的并不是企业客户特有的。所以偶尔的闯入者没什么大不了的;当他们被公司主管淘汰时,我们邀请他们订阅。

@Everybody:电子邮件破损不在标点符号 ( ?&=) 上,而是在某个预定的行长处。也让我吃惊。请注意,域名很长,虚拟目录的路径也很长,这是问题的一部分。

阅读回复后,我将使用 base64 作为伪缩短器,例如:

http://a.MyLongDomainName.com/?q=a&key=base64_encoded_GUID

……看看能不能活下来。谢谢大家。

0 投票
3 回答
1878 浏览

php - Codeigniter 第一段 URL 变量

我希望使用 URL 缩短方案,我希望变量位于 URL 的第一段 www.example.com/0jf08h204 中。我的默认控制器是“home.php”,并且我有 .htaccess mod-rewrites,那么管理它的最佳方法是什么?我想我的智能已被标准 /controller/method/variable 方案阻止,这是 URI 协议设置吗?谢谢!

0 投票
9 回答
4816 浏览

php - 如何基于 id 生成不可猜测的“小 url”?

我有兴趣创建像链接这样的小 url。我的想法是简单地为每个发布的长 url 存储一个递增的标识符,然后将此 id 转换为它的 base 36 变体,如下面的 PHP :

这里的问题是结果是可以猜测的,虽然很难猜测下一个 url 将是什么,同时仍然很短(很小)。例如。atm 如果我的上一个 tinyurl 是 a1,下一个将是 a2。这对我来说是一件坏事。

那么,我如何确保生成的小 url 不是那么容易猜到但仍然很短?

0 投票
7 回答
6899 浏览

php - PHP URL 缩短算法

任何人都可以推荐一种用于 URL 缩短的首选算法吗?我正在使用 PHP 进行编码。最初我想写一些东西,从一个字符开始,比如“a”并遍历请求,在数据库中创建记录,因此必须将字符增加到 b、c、d ... A、B 等等合适的。

然而,我突然意识到这个算法可能非常繁重/笨拙,并且可能有更好的方法来做到这一点。

我在 Google 上阅读了一些内容,有些人似乎是通过数据库 ID 列的基本转换来完成的。这不是我太熟悉的东西。

有人可以详细说明并向我解释这将如何工作吗?几个代码示例也会很棒。

我显然不想要一个完整的解决方案,因为我想自己学习,但只是一个关于它如何工作的解释/伪代码会很好。

0 投票
2 回答
947 浏览

jquery - jQuery AJAX URL Shortener JSON 请求不起作用

我被困住了——对于我认为很简单的事情来说,这非常令人沮丧:(

查询:

我试过这样做,FF给我一个“无效标签”错误,Chrome给了另一个。

当我使用“json”作为数据类型时,我得到一个空返回。

令人沮丧的是,当您在浏览器上尝试该 URL 时,它可以正常工作。来自返回数据的“jsonp”变量的错误显示了我想要的数据,但错误阻止我访问它。

我试过换成 XML 或 Script,相应地改变 API 的要求,但没有。我尝试过其他缩短网站,但同样的事情一直在发生。

还尝试将查询部分移植到数据:,但它也不起作用。

帮助!:( 并感谢您浏览。:)

0 投票
4 回答
977 浏览

asp.net - 如何以数学方法缩短网址

我正在研究使用算法将长度为 150 到 250 个字符的 URL 缩短/加密到最多 12 个字符的可能性。最初我怀疑这是可能的,但我想利用 StackOverflow 的伟大思想:)

该算法应该是一种可以用经典的 asp、sql、c#、vb 或 foxpro 或其他语言编写的算法。

如果没有以数据库为中心的方法,这是否可能?

我在这里读到CFB 模式下的 AES 将执行流密码,并且输出长度将与输入长度相同。有什么办法可以缩短更多吗?