【问题标题】:What is needed to write your own URL shortener? [closed]编写自己的 URL 缩短器需要什么? [关闭]
【发布时间】:2023-03-03 14:22:01
【问题描述】:

我想编写自己的 URL 缩短器,使用 php 和 mysql 作为测试人员,看看我对这两种语言了解多少?但是我不知道这样做需要什么或从哪里开始。请有人给我一份清单,列出创建/编写成功的 URL 缩短器需要做什么?

【问题讨论】:

标签: php mysql url-rewriting


【解决方案1】:

您只需要一个简短的域名。

然后您可以拥有一个包含两列的简单 MySQL 表:Id(自动递增的主键)和 Url。应该是 TEXT 什么的。因为 varchar 255 可能太短了。

然后设置您的 .htaccess,以便将 domain.com/a21s1 之类的 url 转换为 domain.com?url=a21s1

大概是这样的:

RewriteRule ^(?:.*)domain\.com/(.*)/?$ domain.com?url=$1

然后在 php 中执行如下操作:

if(isset($_GET['url'])){
    $url = base_convert((int)$_GET['url'],36,10);
    $result = mysql_query('SELECT `Url` FROM `My Table` WHERE `Id` = '.$url);
    $row = mysql_fetch_row($result);
    $url = $row[0];
}else
    $url = 'http://domain.com/yourhomepage';

header('location: '.$url);

您还希望在用户输入要添加的新 url 时进行完整性检查,您将对其进行正则表达式以确保它是一个 url,如果它缺少 http://,请将其添加到 url。

【讨论】:

  • 啊,URL 重写很不错!
【解决方案2】:

我刚刚完成my-gplus

  • 使用尽可能短的域
  • 使用 .htaccess 重写在 / 之后创建短尾
  • 当用户被重定向时,不要用“感谢您使用...重定向到”来打扰用户
  • 不要强迫用户注册
  • 允许用户注册和查看他们的统计数据

.htaccess 可能看起来像这样

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

【讨论】:

    猜你喜欢
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    相关资源
    最近更新 更多