Zum Inhalt

Alternative Kurz-URL für Artikel in REDAXO

Kurz-URL sind sehr beliebt. Oft sieht man im Web, dass alternativ zur langen, meist sprechenden URL einer Seite noch eine Kurzform angeboten wird. Gerade zur Verbreitung der einzelnen Artikel über soziale Netzwerke, ist diese Kurz-URL natürlich sehr praktisch. Hier gibt es eine mögliche Lösung dies in REDAXO umzusetzen.

Verwendete Systeme

  • REDAXO 4.5.1
  • Addon seo42 2.8.2
  • PHP 5.4.22

Kurz-URL anbieten in REDAXO

Bei dieser Methode wird nichts in der .htaccess geändert, sie ist also unabhängig von Rewrite-Addon’s. Die zusätzliche Kurz-URL verweist auf einen dafür eigens angelegten Artikel der dann auf die original URL weiterleitet.

Legen wir erstmal einen neuen Artikel in REDAXO an, am besten in einer Offline-Kategorie. Da der Dateiname möglichst kurz sein sollte, muss natürlich auch der Artikelname kurz sein. Nutzt man jedoch seo42 spielt das keine rolle. Dann einfach beim Artikel editieren unter “URL”, “interne URL” wählen und einen knappen namen eintragen – in diesem Beispiel ist das “0”.

Den Code platzieren

Den folgenden Code brauchen wir um die eingehenden Seitenaufrufe der Kurz-Url zu verarbeiten. REDAXO bietet einige Möglichkeiten Code zu platzieren. Er kann in einem Template untergebracht werden, welches dann für den oben erwähnten Artikel gewählt wird (empfohlen). Man könnte diesen Code jedoch auch in einem Modul unterbringen. Dabei kann der Artikel ein “leeres” Template verwenden. Leer soll heissen es enthält nur die Artikelausgabe <?php print $this->getArticle(); ?>. Oder aber der Code könnte auch direkt in den Artikel geschrieben werden, sofern man ein Modul installiert hat, welches die Eingabe von PHP-Code erlaubt.

<?php

$requestArticleId = $_SERVER['QUERY_STRING'];

$requestArticleId = filter_var($requestArticleId, FILTER_VALIDATE_INT);

if ( $requestArticleId !== false) {
    
    header("Location: " . rex_getUrl($requestArticleId));
    
} else {
    
    header("Location: " . rex_getUrl($REX['NOTFOUND_ARTICLE_ID']) . "?msg=" . urlencode('ungültige ID') . "&error=404");
}

?>

Zur Erklärung – Zuerst empfangen und prüfen wir den Querystring. Enthält dieser eine Zahl welche natürlich einer Artikel-ID entsprechen soll, wird auf diesen Artikel weitergeleitet. Falls die ID nicht existiert leitet REDAXO auf die Fehlerseite weiter. Dies geschieht hier im Code ebenfalls wenn etwas anderes als eine Zahl übergeben wird. Zusätzlich übergebe ich hier noch eine Nachricht und den Fehlercode um es auf der Fehlerseite ausgeben zu können (optional).

Nun können wir die Kurz-URL bei den Artikeln anbieten. Dazu folgendes im Artikel-Template einfügen:

echo $REX['SERVER'] . '0?' . $REX['ARTICLE_ID'];

Somit wird eine URL in form von http://usysto.net/0?30 generiert, die unser kleines Script dann weiterleitet.

Ob das ganze auch Sinn macht in Hinblick auf die eventuell doch noch relative lange URL, muss jeder selber wissen. Persönlich nehme ich lieber etwas mehr Zeichen in kauf, als auf einen fremden Kurz-URL Service zurück zu greifen.

Weiterführende Links:

Veröffentlicht inLösungenTipp's

Neueste Beiträge

Themen: