Prosty skracacz linków na własnej domenie

Co to jest skracacz linku

Wyobraź sobie, że chcesz wysłać znajomemu link do konkretnego produktu na Allegro lub lokalizacji w Google Maps. Zamiast zgrabnego adresu, dostajesz "tasiemca", który wygląda tak: https://www.google.com/maps/place/Warszawa/xxxxxxx Skracacz zamienia go w coś takiego: twojadomena.pl/warszawa. Możesz oczywisćie skorzystać z darmowego serwisu typu url shortener jak bitly, natomiast biedahosting jest dla ludzi, którzy lubią działać samodzielnie. Poza tym:

Krok 0: Zamów hosting Bieda15

Hosting kosztuje 15 PLN na rok i powinien wystarczyć do tego zastosowania.

Krok 1: Kup domenę

Możesz dzialać na darmowej subdomenie od biedahostingu, ale na własnej wygląda to zdecydowanie lepiej. Możesz poszukać domen w lokalnych, np. waw.pl - dzięki temu będziesz miał większy wybór ciekawych adresów. Możesz poszukać promocji u różnych dostawców - ale pamiętaj, że nawet takie super oferty są droższe przy przedłużeniu za rok.

Krok 2: Podłącz domenę do hostingu

W panelu domeny zmień ustawienia DNS na ns1.microhost.pl i ns2.microhost.pl i dodaj domenę w panelu swojego hostingu przez Zarządzenie kontami-> Zarządzanie domenami -> dodaj nową. Rozpropagowanie zmian w DNS moze zająć dłuższy czas, dlatego wynik może być widoczny nawet następnego dnia.

Krok 3: Podłącz darmowy certyfikat SSL

W panelu hostingu, który otrzymałeś po zakupie przejdż do Zarządzanie kontami -> certyfikaty SSL. Wybierz "Uzyskaj automatyczny certyfikat od dostawcy ACME". Wypełnij pola i wybierz zapisz.

Krok 4: Kod skracacza

Mój kod skacacza wygenerowała sztuczna inteligencja. Możesz oczywisci napisać sam lub poprosić AI o jeszcze lepszy kod. Pamiętaj, że korzystasz z tego kodu na własne ryzyko.

Krok 5: Panel administratora

Dobra dobra, moze nie panel administratora, ale miejsce gdzie będziesz skracał linki. W moim założeniu katalog jest zabezpieczony hasłem, żeby nikt nieuprawniony nie mógł korzystać ze skracacza. Użyłem podstawowej metody logowania przez plik .htaccess - mozesz użyc czegoś bardziej zaawansowanego. Ale do rzeczy:

Utwórz kod realizujący przekierowania

Wyjdź poziom wyżej z folderu admin, utwrórz tam plk .htaccess

    RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9]+)$ redirect.php?code=$1 [L,QSA]

Obok pliku .htaccess utwórz redirect.php o treści:

    <?php
$db = new PDO('sqlite:admin/links.db');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$code = $_GET['code'] ?? '';

$stmt = $db->prepare("SELECT * FROM links WHERE code = ?");
$stmt->execute([$code]);
$link = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$link) {
    http_response_code(404);
    echo "Link nie istnieje";
    exit;
}

$db->prepare("UPDATE links SET clicks = clicks + 1 WHERE code = ?")
   ->execute([$code]);

header("Location: " . $link['url'], true, 301);
exit;

Dlaczego to działa na tanim hostingu?

Do takiego zadania nie potrzebujesz VPS-a ani chmury. Wystarczy: php i pliki .htaccess Właśnie do takich małych rzeczy powstał BiedaHosting — prosty, tani i bez umów.