shorter shortener que minimizer link gratis google goo acortar acortador php mysql algorithm apache url-rewriting

php - shortener - Sitio de acortamiento de URL



shorter acortador (6)

Estoy trabajando en un sitio de acortamiento de URL que utiliza PHP, MySQL y Apache. Idea general de acortamiento de URL cuando miro proyectos de código abierto: el usuario proporciona un enlace URL y el sistema obtiene ID para ese enlace de la base de datos. Luego convierta el sistema base ID X (estoy usando la base 36). Luego use Apache mod_rewrite y cree una URL acortada y luego redirija. ¿Funcionan todos los sitios de acortamiento de URL de esa manera o utilizan algún algoritmo diferente a este? ¿Y alguna idea para hacer una diferencia con otros sistemas de acortamiento de URL?


Sugiero usar YOURLS, que es un paquete de código abierto robusto para hacer exactamente esto. Está basado en PHP / MySQL.

http://yourls.org/#Install

Desde la página sobre:

YOURLS es un pequeño conjunto de scripts PHP que le permitirán ejecutar su propio servicio de acortamiento de URL (a la TinyURL). Puede hacerlo privado o público, puede elegir URL de palabras clave personalizadas, viene con su propia API.


Creo que estás bastante bien.

Una cosa que no haría como dijiste, sin embargo, es acerca de esta parte:

luego use apache mod_rewrite y cree una URL corta y luego redirija.

No creo que crearía un Apache RewriteRule ni usar mod_rewrite .


Al recibir una URL corta, como short.com/MYID , Id haría lo siguiente:

  • descifrar la parte "MYID" al número de identificación en DB
  • buscar la URL de la base de datos
  • solo redirigir a esa URL desde algún código de servidor (como PHP, usando la función de header )

Un poco como esto, supongo:

// fetch $urlFull from DB (corresponding to the MYID received in GET) header(''HTTP/1.x 301 Moved Permanently''); header(''Location: '' . $urlFull); die;


(edit) Si por mod_rewrite querías decir " transform short.com/MYID to short.com/id=MYID ", ¡oh, sí, en este caso, por supuesto!

Estoy usando algo así en uno de mis sitios, por cierto:

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


Espero que esto ayude :-)



Puedes usar bit.ly (twitter usa esto). Hay algunas API que puede usar para llamar y recuperar URL acortadas.

También hable de acortar URL, simplemente puede usar una tabla como esta

CREATE TABLE `urls` ( `id` varchar(255) NOT NULL default '''', `url` text NOT NULL default '''', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Donde puede tener el id (en la base 36 para evitar el agotamiento de enteros de 32 bits) para ser el ID abreviado - http: // host /? Id

y cuando llame a la URL http: // host /? As2dD24B , buscará la ID y la URL coincidentes, y luego redireccionará a la URL. ¿sencillo?

También tenga en cuenta que puede ampliar su base 36. Supongo que su base 36 es: az y 0-9. Puede agregar AZ (otros 26) y otros símbolos (como?,: * & ^% $ # @).


Si desea hacer algo diferente de otros sitios de acortamiento de URL, descubra una forma de asegurarse de que los enlaces no se rompan si su sitio desaparece. No sé cómo hacer esto, creo que probablemente sea imposible ...


Solo una nota de seguridad: no redirija directamente al sitio desde una url acortada si no está bajo su control / dominio: tenga una página de destino donde el usuario pueda ver la url real y decidir si continuar o no ...