RRZE-Webteam / rrze-shorturl

WordPress-Plugin to enable a shorturl redirection service run on two servers (WP + PHP-only)
https://www.shorturl.rrze.fau.de
GNU General Public License v3.0
0 stars 1 forks source link
shortener shorturl shorturl-decoder shorturl-service shorturl-services shorturls

RRZE-ShortURL

WordPress-Plugin: URL shortener

Shortcodes

[shorturl] Generiert ein Formular, um Links zu verkürzen. Erweiterte Einstellungen werden auf Klick sichtbar.

[shorturl-list] Zeigt in einer Tabelle die URLs an. Es kann nach Kategorien und Schlagwörtern gefiltert werden.

[shorturl-categories] Die Verwaltung der Kategorien. Kategorien sind IdM-zugehörig. D.h. es können nur Kategorien zur eigenen IdM editiert, gelöscht, angelegt und zugeordnet werden.

[shorturl-tags] (seit 1.1.0 deaktiviert) Die Verwaltung der Schlagwörter

[shorturl-services] Gibt eine Tabelle mit den Services aus.

[shorturl-customer-domains] Gibt eine Tabelle mit den aktiven Customer Domains aus.

Block

RRZE ShortURL um im Blockeditor Links zu verkürzen

Verwaltung

In den Einstellungen kann Folgendes verwaltet werden:

Defaults:

Cronjobs (WordPress "cronjobs")

REST-API Endpoints (DOMAIN/wp/v2/shorturl)

Zugriffsschutz der REST-API Endpoints:

Alle Endpoints sind zugriffsgeschützt.

Installation

Ablauf

Zwischen Generierung des ShortURLs und Aufruf gibt es seit 1.3.0 keine Wartezeit mehr und es ist kein Cron-Job mehr nötig.

ShortURL ruft Redirect-Server auf Format der ShortURL: "Protokoll://Redirect-Server/Path"

Check in .htaccess:

shorturl-redirect.php:

Preview

Endet der ShortURL mit einem Plus-Zeichen, wird eine simple HTML-Seite ausgegeben mit "$short_url redirects to / verweist auf $long_url". Das funktioniert mit Service-URLs und Customer Links.

.htaccess

Die .htaccess enthält alle Redirects zwischen den Kommentar-Zeilen "# ShortURL BEGIN" und "# ShortURL END". Als erstes die Regel (Redirect zu shorturl-redirect.php) für die Services, dann die User-generierten Redirects für die erlaubten Domains. Am Schluss Redirect zu shorturl-redirect.php Nach "# ShortURL END" alle vorher bereits existierten Zeilen der .htaccess. make_htaccess.php überschreibt die Anweisungen der vorhandene .htaccess nicht.

Performance

Mit der Zeit wird die .htaccess viele Zeilen für die Redirect Rules enthalten. Es sollte keine Auswirkung auf die Performance haben, da auch .htaccess sehr viele Anweisungen sehr schnell verarbeiten kann (siehe zB "7G Firewall" https://perishablepress.com/7g-firewall/ ). Gültigkeit der Rules ist durchschnittlich 1 Jahr. Ungültige werden automatisch entfernt. Services werden stets in shorturl-redirect.php berechnet. Dazu wird die RegEx aus der SESSION gelesen, dann notfalls im JSON-File, dann erst über die REST-API und die Entkodierung findet im Skript statt. Nur wenn Link nicht aufgeschlüsselt werden kann, wird die REST-API nach Updates abgefragt. Dabei so performant wie möglich: lightweight nur zum aktuellen Link. Redirect vor allen weiteren Anweisungen (wie weiteren REST-API-Aufruf, SESSION und JSON-File speichern, ggfalls .htaccess neu generieren).