Bueno, lo único que no hice desde 0 es el .htacces, lo demás es código mio, y no es el que utilizo en rpdbin.tk (ese no usa base de datos).
Aclaro:
no es ninguna aplicación pre-fabricada, solo una base que les doy.Código SQL:
CREATE TABLE IF NOT EXISTS `urls` (
`url` varchar(255) NOT NULL,
`id` varchar(5) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Este código no necesita mucha explicación, se crea una tabla llamada
urls la cual contiene dos campos llamados
url e
id, como su nombre lo dice, en el campo
url se almacenara la dirección del sitio web acortado, y en
id el codigo generado, por ejemplo: hazw6.
.HTACCES<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9]+)[/]?$ verurl.php?id=$1
</IfModule>
Acá se encuentra la magia para que en vez de teclear así:
http://miurl/verurl.php?id=hazw6 tecleemos,
http://miurl/hazw6.
verurl.php<?php
include("conectar.php");
$url = mysql_fetch_array(mysql_query("SELECT * FROM urls WHERE id = '".$_GET['id']."'"));
header ("Location: ".$url['url']."");
?>
Acá, se incluye al archivo conecar.php (Recuerden, cada quien a su manera) para después hacer la consulta a la Base de Datos y redireccionar con los datos obtenidos.
index.php<?php
include("conectar.php");
if (isset($_POST['ok'])) {
if(empty($_POST['url'])) {
echo "No puedes dejar la URL vacía";
} else {
$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
$id = "".$array[rand(0, 34)]."".$array[rand(0, 34)]."".$array[rand(0, 34)]."".$array[rand(0, 34)]."".$array[rand(0, 34)]."";
mysql_query("INSERT INTO urls (url, id) VALUES ('".$_POST['url']."','".$id."')");
echo "La url <b>".htmlspecialchars($_POST['url'])."</b> ha sido reducida a: <b><a href='http://".$_SERVER["SERVER_NAME"]."/".$id."'>http://".$_SERVER["SERVER_NAME"]."/".$id."</a></b>.";
}
}?>
<form method="post" action="">
<input name="url" id="url" value="http://" /><br>
<input type="submit" name="ok" id="ok" />
</form>
Este archivo, aunque creo que es evidente, registra la
url y el
id en la Base de Datos, y te genera un link para redireccionar a la
url específicada.
El conectar cada quien lo hace a su manera.Cada quien utilizelo como guste, espero que les haya servido, fue probado en mi localhost