Un acortador de url es un software que permite acortar una URL haciéndola mas pequeña y fácil de compartir y recordar.
La base de los acortadores de URL es guardar la URL original en una base de datos y generar un codigo o identificador para cada URL, después cada vez que se usa el código este se traduce en su URL original y se produce una redireccion.
Al usar un acortador de URL también se pueden hacer estadísticas de los clicks o usos al enlace acortado.
Ejemplo tenemos la URL: http://evilnapsis.com/2020/01/22/como-usar-el-progressbar-de-html5-con-javascript/
Al usar un acortador de URL podemos usar por ejemplo: http://evilnapsis.com/?id=1000
Ahora bien existen 2 tipos de acortadores de URL.
- Los acortadores simples, que reciben un código y automáticamente obtienen la URL original y producen la redirección instantánea.
- Los acortadores de pago, que reciben el código y ofrecen al usuario hacer una acción antes de producir una redirección, esta acción va desde esperar algunos segundos a hacer clicks en secciones de pagina.
Ahora vamos a explicar un poco de como funciona internamente un sistema acortador de URL.
Base de datos
Lo primero que necesitamos es una base de datos, aquí guardaremos el url y vamos a obtener un ID este id va a ser nuestro código acortado.
create database evilshorturl; use evilshorturl; create table url( id int not null auto_increment primary key, url varchar(255), created_at datetime );
Ahora es fácil para guardar urls solo ejecutamos la consulta:
insert into url(url, created_at) value ("http://evilnapsis.com/",NOW());
Y cuando busquemos una URL por id solo haremos una consulta SQL.
select * from url where id=1000;
Así vamos a obtener el url original y para hacer una redireccion en PHP haríamos algo aso.
Código
El siguiente código PHP es algo rudimentario pero funciona, una vez instalada la base de datos…, en este caso el id=1000 se puede cambiar por cualquier numero o bien por un parámetro $_GET[“id”].
<?php $con = new mysql("localhost","root","","evilshorturl"); $sql= "select * from url where id=1000"; $query = $con->query($sql); if($query){ $result = $query->fetch_object(); if($result){ header("Location: $result->url"); } } ?>
Y listo ya tenemos un acortador de URL sencillo.
A ustedes que les parece ?