一尘不染

URL缩短站点

algorithm

我正在使用PHP,MySQL和Apache的URL缩短站点上工作。在我看开放源代码项目时,URL缩短的一般思想是:用户提供一个URL链接,系统从数据库中获取该链接的ID。然后转换ID
X基本系统(我正在使用基本36)。然后使用Apache
mod_rewrite并创建缩短的URL,然后重定向。是否所有URL缩短站点都像那样工作,或者某些站点使用除此以外的其他算法?还有什么与其他URL缩短系统有所不同的想法吗?


阅读 237

收藏
2020-07-28

共1个答案

一尘不染

我认为您的做法是正确的。

但是,我不想您说的一件事是关于这一部分的:

然后使用apache mod_rewrite并创建简短网址,然后重定向。

我认为我不会创建Apache RewriteRule,也不会使用mod_rewrite

收到短网址(如)时short.com/MYID,Id会:

  • 将“ MYID”部分解密为数据库中的ID号
  • 从数据库中获取URL
  • 只需从某些服务器代码(例如PHP,使用header函数)重定向到该URL

我猜有点像这样:

// fetch $urlFull from DB (corresponding to the MYID received in GET)
header('HTTP/1.x 301 Moved Permanently');
header('Location: ' . $urlFull);
die;

(编辑)如果mod_rewrite您的意思是“ _将short.com/MYID转换为short.com/id=MYID_
”,哦,是的,在这种情况下,当然可以!

我在我的一个网站btw上使用了类似的方法:

RewriteEngine on
RewriteCond %{REQUEST_URI}  !^/index.php
RewriteRule ^(.*)$ /index.php?hash=$1   [L]

希望这可以帮助 :-)

2020-07-28