URL Kısaltma Sitesi

6 Cevap php

PHP, MySQL ve Apache kullanan bir URL kısaltma sitesi üzerinde çalışıyorum. URL kısaltmanın genel bir fikir Ben açık kaynak projeleri bakmak gibi: kullanıcı bir URL bağlantısını sağlar ve sistem veritabanı o bağlantı için kimliğini alır. Sonra ID X baz sistemi (I baz 36 kullanıyorum) dönüştürebilirsiniz. Sonra Apache mod_rewrite kullanmak ve kısaltılmış URL oluşturmak ve sonra yeniden yönlendirmek. Siteleri kısalma URL tüm bu gibi çalışır ya da bunun dışında farklı bir algoritma kullanıyor musunuz? Ve diğer URL kısaltma sistemlerinden bir fark yaratmak için herhangi bir fikir?

6 Cevap

Ben doğru yolda oldukça olduğunu düşünüyorum.

Dediğin gibi ben yapmam bir şey olsa, bu bölümü hakkında:

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

Ben bir Apache RewriteRule oluşturmak istiyorum düşünüyorum, ne de kullanmayın mod_rewrite.


When receiving an short url, like short.com/MYID, Id would :

Biraz böyle sanırım:

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


(edit) If by mod_rewrite you meant "transform short.com/MYID to short.com/id=MYID", oh, yes, in this case, of course !

Ben btw, benim sitelerin birinde böyle bir şey kullanıyorum:

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


Hope this helps :-)

Sen bit.ly (twitter Bu kullanır) kullanabilirsiniz. Eğer kısaltılmış URL'leri aramak ve almak için kullanabileceğiniz bazı API'leri vardır.

Ayrıca URL'leri kısaltan hakkında konuşmak, sadece böyle bir tablo kullanabilirsiniz

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

http://host/?id - Sen id (baz 36, 32 bit tamsayılar yorgunluğunu önlemek için) kısaltılmış kimliği olması nerede

Eğer http://host/?As2dD24B, bu eşleştirme kimliği ve URL bakacaktır URL'yi çağırdığınızda ve sonra bir URL'ye yönlendirir. basit?

Also keep in mind that you can expand your base 36. I am assuming that your base 36 is: a-z and 0-9. You can add in A-Z (another 26) and other symbols (such as ?,:*&^%$#@).

Diğer URL kısaltma sitelerinden farklı bir şey yapmak istiyorsanız sitenizin uzağa giderse, emin bağlantıları kesmeyen yapmak için bir yolunu! Ben muhtemelen imkansız olduğunu düşünüyorum, bu nasıl bilmiyorum ...

Sadece bir güvenlik not: bu kontrol / etki altında değilse, kısaltılmış bir URL doğrudan siteye yönlendirme etmeyin - kullanıcı gerçek url görmek değil, devam etmek ya da karar nerede bir açılış sayfası var ...

Ben tam olarak bunu yapmak için sağlam bir açık kaynak paketi YOURLS kullanarak öneririm. Bu tabanlı PHP / MySQL bulunuyor.

http://yourls.org/#Install

Ilgili sayfasında:

YOURLS is a small set of PHP scripts that will allow you to run your own URL shortening service (a la TinyURL). You can make it private or public, you can pick custom keyword URLs, it comes with its own API.