我编写了一个 PHP 编码/解码双射函数,它只需要一个数字并使用带有自定义字母的base-58对其进行编码/解码。
这个缩短器工作正常,但我希望能够限制某些单词并能够创建自定义虚荣网址。
这应该意味着用户不会将他们的链接重新添加到domain.com/boobs或其他内容。
此外,我希望能够在不破坏双射函数的情况下将domain.com/stackoverflow解析为domain.com/12342 。
提议的解决方案
我有几个建议,但它们似乎并不理想。我想到的一种方法是将自定义 url 存储在数据库中,因此 1234 => mycoolurl 然后在编码/解码时查找它是否已经存在。如果是这样,则将数字偏移 10,000,000(因此它将变为 10,001,234,然后对其进行编码/解码。这会使某些链接比其他链接长得多,并将硬限制设置为 10,000,000 个链接(这实际上可以,但仍然不是很优雅). 为了解决脏话问题,我可以在数据库中插入虚拟链接。
我很想听听你的意见!