- Download the source code as located within this repository, and upload it to your web server.
- With mysql: use database.sql to create the redirect table in a database of choice.
- With sqlite: the app will generate a .sqlite database file in the root directory if not already present.
- Change sample.config.php to config.php and edit with your database credentials.
- Redirect to your main website when no slug is entered, e.g.
http://mths.be/
→http://mathiasbynens.be/
. - Redirect to a specific page on your main website when an unknown slug (not in the database) is used, e.g.
http://mths.be/demo/jquery-size
→http://mathiasbynens.be/demo/jquery-size
. - Ignores weird trailing characters (
!
,"
,#
,$
,%
,&
,'
,(
,)
,*
,+
,,
,-
,.
,/
,@
,:
,;
,<
,=
,>
,[
,\
,]
,^
,_
,{
,|
,}
,~
) in slugs — useful when your short URL is run through a crappy link parser, e.g.http://mths.be/aaa)
→ same effect as visitinghttp://mths.be/aaa
. - Generates short, easy-to-type URLs using only
[a-z]
characters. - Doesn’t create multiple short URLs when you try to shorten the same URL. In this case, the script will simply return the existing short URL for that long URL.
- DRY, minimal code.
- Correct, semantic use of the available HTTP status codes.
javascript:(function(){var%20q=prompt('URL:');if(q){document.location='http://yourshortener.ext/shorten?url='+encodeURIComponent(q)}})();
javascript:(function(){document.location='http://yourshortener.ext/shorten?url='+encodeURIComponent(location.href)})();
— Mathias