Skip to content

url shortener written in php (with MySQL or SQLite) with history by users

License

Notifications You must be signed in to change notification settings

azlux/Simple-URL-Shortener

Repository files navigation

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)

Warning

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