php - 网址缩短网站

标签 php mysql algorithm apache url-rewriting

我正在开发一个使用 PHP、MySQL 和 Apache 的 URL 缩短网站。当我查看开源项目时,URL 缩短的一般想法是:用户提供一个 URL 链接,系统从数据库中获取该链接的 ID。然后转换 ID X base 系统(我使用的是 base 36)。然后使用 Apache mod_rewrite 并创建缩短的 URL,然后重定向。所有的 URL 缩短网站都是这样工作的,还是有些网站使用的不是这个算法?有什么想法可以区别于其他 URL 缩短系统吗?

最佳答案

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

不过,有一件事我不会像你说的那样做,那就是这部分:

then use apache mod_rewrite and create shorten url and then redirect.

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


当收到一个短 url,比如 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”,哦,是的,在这种情况下,当然!

我在我的一个网站上使用了类似的东西,顺便说一句:

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


希望这会有所帮助:-)

关于php - 网址缩短网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1383145/

相关文章:

javascript - 在 CakePHP 3 中将样式应用于 flash 消息

Python MySQLdb,简单的聊天室/留言簿应用程序

javascript - 浏览器端的内容 url 安全

algorithm - 作为无向未加权图的输入给出的两个任意顶点之间的最小割

algorithm - 这个循环优化叫什么,它是如何工作的?

PhpUnit 当我使用 Mock Builder for Interface 时,我得到了正确的类

php - Jquery 和 Ajax 中的错误

javascript - 调整 ChartJS 中的 X 轴步长

php - 如何从 laravel 5.1 中的选项值获取 id 并将 id 更新到数据库中

php - 仅循环中的第一个条目被输入到 MySQL 表中