Skip to content
url shortener written in php (with MySQL or SQLite) with history by users
PHP CSS JavaScript
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
assets New directory organization Jun 24, 2019
.gitignore rework of the css, removing old files Jun 13, 2019
LICENSE Update LICENSE Apr 29, 2015 fix for some apache May 18, 2020
favicon.ico New code ! Jun 12, 2019
index.php Fix for public instance mode Jun 24, 2019
shorten.php Update shorten.php Feb 15, 2020

simple-shortener by Azlux

Simple shortener working with MySQL or SQLite database in PHP. The goal is to create a simple and KISS shortener without dependencies. The user can add comments for the link to find it faster into its history.

Nice shortcut added. The shortcut will create a new short url of your current page when you click on it. Writed to work into subfolder. (don't need to be at the root)

Installation :

  • clone this project
  • Copy inc/config.example.php to inc/config.php
  • Set you config file
  • Call installation.php to setup the database
  • delete installation.php
  • Create a user, the first one will be an admin (allow you to see no connected shorted links)


For security reasons, the cookies are set on https only (cookie_secure mode) Authentification will not for if your website isn't on HTTPS. For testing purpose, you need an browser addons to disable this security like this one on Firefox.

Nginx configuration :

location / {
    rewrite ^/(.*)$ /index.php?site=$1 last;
    try_files $uri $uri/ /index.php;
location /assets {
    try_files $uri =404;
location /favicon.ico {
    try_files $uri =404;
location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_index index.php;
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
location ~* \.(sqlite3|ht)$ {
    deny all;

Apache configuration (.htaccess) :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?site=$1 [L] 

Credit :

Based on code provided by SilouFR

Dev PHP : Azlux

Design : Spokeek

You can’t perform that action at this time.