我正在使用PHP,MySQL和Apache的URL缩短站点上工作。在我看开放源代码项目时,URL缩短的一般思想是:用户提供一个URL链接,系统从数据库中获取该链接的ID。然后转换ID X基本系统(我正在使用基本36)。然后使用Apache mod_rewrite并创建缩短的URL,然后重定向。是否所有URL缩短站点都像那样工作,或者某些站点使用除此以外的其他算法?还有什么与其他URL缩短系统有所不同的想法吗?
我认为您的做法是正确的。
但是,我不想您说的一件事是关于这一部分的:
然后使用apache mod_rewrite并创建简短网址,然后重定向。
我认为我不会创建Apache RewriteRule,也不会使用mod_rewrite。
mod_rewrite
收到短网址(如)时short.com/MYID,Id会:
short.com/MYID
header
我猜有点像这样:
// 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]
希望这可以帮助 :-)