Jump to content.

Suche auf der Site

Newsletter abonnieren

» zur An- und Abmeldung
» mehr Info

Das Buch zum Blog

Cover Buch Website-Konzeption

Website-Konzeption: Erfolgreiche Websites planen, umsetzen und betreiben

Neues bei Twitter

Neues bei delicious

(Was ist delicious?)


Impressum

Impressum/Kontakt

Eigener URL-Shortener: Yourls

Links zu Webseiten, insbesondere zu Blogeinträgen, sind oft sehr lang. Daher gibt es die sogenannten URL-Shortener. (Tja, wie nennt man die auf Deutsch? URL-Abkürzer? Linkkürzer? Linkabkürzungsdienste?)
Statt http://www.benutzerfreun.de/konzeption/eigener-url-shortener-yourl/ kann man dann z. B. den Link http://bit.ly/fYBVE weitergeben. Bei E-Mails bewahrt das vor nicht klickbaren Links durch Zeilenumbrüche. Vor allem spart man so Zeichen bei Kurznachrichten-Diensten wie Twitter – da hat man ja nur 140 Zeichen, und wenn davon 60 für einen Link draufgehen, kann man dazu nicht mehr viel schreiben.

Technisch ist das ganz einfach: Der Kurzlinkdienst hat eine Datenbank, in die die lange URL eingetragen wird. Dazu erzeugt er eine kurze URL, die der Nutzer per E-Mail oder Twitter verbreitet. Ruft man diese Kurz-URL auf, sucht der Kurzlinkdienst in seiner Datenbank die dazugehörige lange URL und leitet den Benutzer dorthin.

Ein weiterer Vorteil: Als Linktippgeber kann ich sehen, wie oft meine Empfehlung angeklickt wird. Dazu muss ich mich allerdings bei dem Linkkürzer anmelden.

Screenshot persönliche Seite bei bit.ly mit Klickstatistik

Screenshot persönliche Seite bei bit.ly

Noch komfortabler ist es, einen eigenen URL-Shortener einzurichten. Jedenfalls dann, wenn man das Einrichten hinter sich hat. Damit bin ich unabhängig und meine Kurz-URLs funktionieren, solange mein Server funktioniert. Vor einigen Wochen gab es große Aufregung, weil einer der Linkkürzer abgeschaltet werden sollte – alle seine Kurzlinks wären damit unbrauchbar geworden.

Eigenen Dienst für Kurzlinks einrichten

Wie diese Einrichtung eines eigenen Kurzlink-Dienstes mit Hilfe der open-source Software Yourls geht, beschreibe ich im Folgenden:

Die Domain

Damit die URLs wirklich kurz werden, sollte Ihre eigene Domain kurz sein. Oder Sie besorgen sich eine eigene nur für diesen Zweck. Ich habe mich für http://bnfr.de entschieden.

Die Installation von Yourls

Bei Yourls laden Sie sich die benötigten Dateien herunter. Folgen Sie der Installationsanleitung.

Wichtig: Kopieren Sie die Dateien in ein eigenes Verzeichnis, am besten einfach nach www.IhreDoman.de/yourls/. Insbesondere wenn Sie ein Blogsystem wie WordPress nutzen, gibt es sonst Ärger: Denn Blog und Yourls haben unterschiedliche Vorstellungen davon, was mit Seitenaufrufen passieren soll. (Beide verändern die .htaccess, in der Umleitungen definiert werden können. Und die Änderungen der beiden Systeme vertragen sich nicht.)

Die Datenbank

Für die Liste mit den Zuordnungen der Kurzlinks zu den langen URLs brauchen Sie eine mySQL-Datenbank. Das kann eine bestehende sein, oder Sie legen eine eigene an.

Die Kunst der Konfiguration

Nutzen Sie eine eigene Domain für den Linkkürzer, lassen Sie diese auf www.IhreDoman.de/yourls/ verweisen.

In /yourls/includes/config.php tragen Sie die Zugangsdaten für die Datenbank ein, und Sie setzen dort Ihre Kurz-Domain ein: define('YOURLS_SITE', 'http://kurz.de');

Für alle weiteren Einstellungen in dieser Datei folgen Sie einfach den Anweisungen auf der Yourls-Site.

Jetzt kommt der Punkt, an dem ich fast verzweifelt bin: Öffnen Sie die Datei /yourls/.htaccess auf dem Server (Achtung: nicht die aus dem Stammverzeichnis/Root des Servers!).
Hier müssen Sie eintragen, dass die Verweise zu dem yourls-Unterverzeichnis gehen. Und das auch dann, wenn Sie eine eigene Domain verwenden, die in das Unterverzeichnis weiterleitet. Denn beim Aufruf dieser Domain (wie http://kurz.de/) landet man ja sofort auf dem eigentlichen Server (http://IhreDomain.de/yourls/), daher ist es auch logisch, das man hier die Unterverzeichnisse angeben muss. Es sollten also in unserem Beispiel unter anderem diese drei Zeilen in der .htaccess stehen:

RewriteRule ^([0-9A-Za-z]+)/?$ /yourls/yourls-go.php?id=$1 [L]
RewriteRule ^([0-9A-Za-z]+)\+/?$ /yourls/yourls-infos.php?id=$1 [L]
RewriteRule ^([0-9A-Za-z]+)\+all/?$ /yourls/yourls-infos.php?id=$1&all=1 [L]

Damit sollte alles fertig sein und Sie können den Dienst einweihen auf: http://IhreDomain.de/yourls/admin/

Eine nette Zusatzfunktion, wenn Sie WordPress nutzen: Das zusätzlich erhältliche Plug-In Yourls: WordPress to Twitter schickt automatisch einen Tweet für jeden neuen Blogeintrag und erzeugt dafür jeweils Yourls-Kurzlinks in Ihrer eigenen Datenbank.

Nachtrag (29.10.2009, 15:45):

Ich bilde mir ein, es wäre schon gegangen, aber das Plug-In hat eben nicht ganz so funktioniert wie erwartet. Stellt man ein, dass die Yourls-Installation auf dem eigenen Server liegt, gab es Ärger beim Veröffentlichen eines neuen Blogeintrags (mit aktivierten Yourls-Plug-In). Ich bekam diese Fehlermeldung:
Warning: require_once(/yourls/includes/config.php) [function.require-once]: failed to open stream: No such file or directory in /homepages/5/d8889999/htdocs/benutzerfreunde/wp-content/plugins/yourls-wordpress-to-twitter/inc/core.php on line 133
Trägt man den Pfad aus der Fehlermeldung dann beim Yourls-Plug ein, dann geht es. Also statt wie erwartet nur
/yourls/includes/config.php
trägt man ein:
/homepages/5/d8889999/htdocs/benutzerfreunde/yourls/includes/config.php
(In meinem Fall liegt die Site bei einem großen Hoster – ich habe nur ein mittleres Webhosting-Paket, das sich den Server mit vielen anderen teilt.)

Nachtrag (12.11.2009, 16:35):

Was ärgerlich ist: Ist die Kurz-Domain nicht beim eigenen Hoster registriert, sondern nutzt man eine Weiterleitung (z. B. bei einem reinen Domainanbieter, der kein Webspace anbietet), dann passiert Folgendes:
Wenn man Yourls mit einem Passwort schützt, so dass der eigene URL-Kürzer nicht jedermann zur Verfügung steht, gibt es ein Problem mit den Cookies: Man muss sich jedesmal einloggen. Also bei jeder neuen Seite die man in Yourls aufruft. Nicht nur bei jeder Sitzung, sondern wirklich nach jeder einzelnen Seite. Und Einträge aus der Liste löschen kann man so auch nicht. Ich hatte mit dem Entwickler von Yourls Kontakt, der sehr schnell reagiert hat. Leider will (kann?) er an dem Problem nichts ändern. Aber ich habe einen Workaround gefunden, der nicht weh tut:

Man öffnet das Bookmarklet, das man mit den Yourls „Tools“ bei den eigenen Lesezeichen im Browser abgelegt hat, im Editiermodus des Browsers (bei Firefox z. B. über „Lesezeichen verwalten“). Dort sucht man die eigene URL (in meinem Fall http://bnfr.de/admin/) und ändert sie zur langen Form, also dem eigentlichen Pfad zur Yoursl-Installation (im Beispiel http://www.benutzerfreun.de/yourls/admin/index.php).
Jetzt wird beim Anlegen der Kurz-URLs der lange Pfad genutzt, es wird aber dennoch eine URL mit der Kurz-Domain erzeugt. Und zum Löschen von Einträgen aus der Liste ruft man einfach die Yourls-Installation über die lange Domain direkt auf.

Beitrag empfehlen auf:

1 Kommentar

  1. Geschenkebetrater gepostet am 22. Februar 2011:

    Hallo Jens,

    der Beitrag ist zwar nicht mehr der neuste, aber hat mir super weiter geholfen. Ich war mit der .htaccess echt am verzweifeln.
    Ich nutze YOURLS 1.5 und habe nun folgendes in der .htacces stehen:

    RewriteEngine On
    RewriteBase /produktdetails/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /produktdetails/yourls-loader.php [L]
    RewriteRule ^([0-9A-Za-z]+)/?$ /produktdetails/yourls-go.php?id=$1 [L]
    RewriteRule ^([0-9A-Za-z]+)\+/?$ /produktdetails/yourls-infos.php?id=$1 [L]
    RewriteRule ^([0-9A-Za-z]+)\+all/?$ /produktdetails/yourls-infos.php?id=$1&all=1 [L]
    RewriteRule ^([0-9A-Za-z]+)\+all/?$ /produktdetails/yourls-loader.php [L]

    Ich bin mir jetzt zwar nicht ganz sicher ob das so richtig ist, aber egal. ES FUNKTIONIERT!!!

    Silvio

RSS feed für Kommentare zu diesem Post.

Einen Kommentar hinterlassen

Sie können diese Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>