RSS Feed
Sep 29

Die Grenzen der Frame-Weiterleitung sprengen

Veröffentlich am Dienstag, 29. Sep 2009 in Webentwicklung

Viele Hoster bieten günstige Domains ohne Webhosting Komponenten an. Bei einigen Hoster wie z.B. Strato handelt es sich aber leider nur um Domains mit der Möglichkeit der Frame-Weiterleitung. Das ist aber teilweise vor der Bestellung nicht zu sehen.

Manch einer wird sich eventuell darüber freuen, da er irgendwo ein kostenloses Hosting mit einer sehr langen URL hat und durch die Frameweiterleitung den Besuchern immer eine kurze Domain präsentieren kann. Doch die Sache hat auch ihre Haken.

Das Lesezeichen-Problem

Das navigieren innerhalb der Seite gestaltet sich für den Besucher, wie er es erwartet. Er kann alle Links anklicken und der Hauptframe öffnet daraufhin die richtige Seite. Auch das Navigieren mit den “Vor” und “Zurück” Buttons funktioniert tadellos. Aber sobald der Benutzer eine Seite gefunden hat, die er seinen Favoriten hinzufügen möchte fängt der Ärger an. Nicht nur, dass der Name des Lesezeichens oft nur die Domain enthält, viel schlimmer ist, dass das Lesezeichen auch auf die selbige zeigt. Wenn der Besucher also später das Lesezeichen aufruft kommt er nicht auf die gewünschte Seite, sondern auf die Startseite und muss von dort aus erst wieder mühsam auf die richtige Seite navigieren.

Das Suchmaschinen-Problem

Die meisten Suchmaschinen (Google eingeschlossen) haben Probleme mit framebasierten Seiten. Sie sehen oft nur das Frameset-Konstrukt und nicht die Inhalte der einzelnen Frames. Das bedeutet in den meisten Fällen, das eure Internet-Seiten, die tausende von Seiten haben können, bei Suchmaschinen genau EINE Seite als Eintrag enthalten. Und das ist die Startseite oder genauer gesagt das Frameset der Domain. Eine Möglichkeit den Suchmaschinen doch die anderen Seiten mitzuteilen ist das Erstellen einer Sitemap. Diese solltet ihr dann aber manuell den Suchmaschinen mitteilen, da sie die Datei unter umständen auch nicht finden können. Dabei könnt ihr entweder die Domain um die Seitennamen erweitern, oder aber die URL eures Webspace verwenden und um die Seitennamen erweitern.

Die Lösung

Beide Probleme zeigen also, dass Frame-Weiterleitungen ein Relikt aus alten Zeiten sind und nicht mehr verwendet werden sollten. Aber was kann man tun, wenn der Hoster keine HTTP-Weiterleitung bietet, oder dafür einen Aufpreis verlangt? Ganz einfach, man bedient sich eines recht simplen Tricks. Dazu legt man zuerst einen Ordner mit beliebigen Namen auf dem Server an. Dann stellt man die Domain so ein, dass sie als Ziel den Ordner enthält. In diesem Ordner erzeugt man dann eine index.php (oder eine Index-Datei einer andern Scriptsprache) mit folgendem Inhalt:

<script type="text/javascript">
	top.location.href = "http://example.com";
</script>

Dieser einfache JavaScript Snippet ändert die URL des Top-Frame auf einen neuen Wert. Wenn der Besucher also eure Domain aufruft, die lediglich eine Frame-Weiterleitung untersützt, sorgt der Code dafür, dass das oberste Frameset auf eine andere URL umgeleitet wird. Hierbei müsste ihr natrülich “example.com” durch eure eigene Domain ersetzen (das “http://” dabei nicht vergessen). Für alle Besucher, die keine JavaScript Unterstützung aktiviert haben solltet ihr zusätzlich einen NOSCRIPT Tag einfügen der einen Link enthält:

<noscript>
	Sollten Sie nicht weitergeleitet werden, klicken Sie auf den folgenden Link:
	<a href="http://example.com" target="top">http://example.com</a>
</noscript>

Der Link bekommt dabei das Attribut “traget” mit dem Wert “top”. Somit wird auch hier der Link im obersren Frameset aufgerufen. Um Benutzern, die ein Lesezeichen auf eure umzuleitende Domain haben, könntet ihr auch noch den Request an die Domain anhängen. Somit wird der Besucher dann auf die richtige Zielseite auf der anderen Domain umgeleitet. Zusammengesetzt sieht das ganze Beispiel dann wie folgt aus (oder ähnlich in einer anderen Skriptsprache):

<script type="text/javascript">
	top.location.href = "http://example.com".$_SERVER['REQUEST_URI'];
</script>
<noscript>
	Sollten Sie nicht weitergeleitet werden, klicken Sie auf den folgenden Link:
	<?php echo '<a href="http://example.com'.$_SERVER['REQUEST_URI'].'" target="top">http://example.com'.$_SERVER['REQUEST_URI'].'</a>'; ?>
</noscript>

Diesen Codeblock platziert Ihr einfach im BODY Tag der Index-Seite. Dabei solltet ihr aber Besuchern ohne JavaScript eine schönere Seite präsentieren, als eine die nur den Link auf weißem Untergrund enthält.

Da ich selbst noch eine Domain besitze, die ich leider zur Zeit noch nicht auf ein aktuelles Hostingpaket umziehen kann, könnt ihr euch das ganze in einem kleinen Beispiel auch ansehen. Die Domain ist mittlerweile endlich umgezogen und daher habe ich nun das Beispiel auf die alte Subdomain abgeändert. Dazu solltet ihr einfach JavaScript vorübergehen deaktivieren, damit ihr auch die Seite und den Quelltext betrachten könnt. Wenn ihr dann JavaScript wieder aktiviert und die Seite aktualisiert, solltet ihr auf meinen Blog umgeleitet werden.

Beispiel

Mit diesem Trick könnt ihr also die Frame-Weiterleitung umgehen, aber ihr präsentiert dann dem Besucher die entsprechend andere URL, als sie aufgerufen haben. Dies sollte aber einer schönen URL aber dafür der eingeschränkten Suchmaschinenfreundlichkeit und der Verhinderung von Lesezeichen bevorzugt werden. Ihr könnt weiterhin die schöne URL in Mails verbreiten und den Besucher trotzdem umleiten. Wenn ihr die Domain vollständig nutzen möchtet bleibt euch leider nichts anderes Möglich, als diese in das Webhosting-Paket zu übertragen oder zu einem reinen Domain-Anbieter zu wechseln, der auch eine HTTP-Weiterleitung anbietet, auch wenn das eventuell einen Aufpreis bedeutet.

Jul 13

CakeFest 2009 in Berlin

Veröffentlich am Montag, 13. Jul 2009 in Webentwicklung

cakefest 2009 in BerlinIch war dabei! Wie ist war und was es alles zu sehen gab seht könnt ihr auf der offiziellen CakeFest website nachlesen. Empfehlenswert ist auch ein Blick auf die Twitter Nachrichten.

Auf der Suche nach neuen Inspirationen zur PHP-Programmierung bin ich auf das Buch Webentwicklung mit CakePHP gestoßen. Der Inhalt des Buchs beschrieb ziemlich genau das Projekt, dass ich für meine Bachelor-Thesis gewählt hatte. Ich habe mich auch damals an den Prinzipien von Ruby-on-Rails orientiert. Wenn das Buch ein halbes Jahr früher erschienen wäre, hätte ich viel Zeit und Probleme sparen können.

(weiterlesen…)

Jul 2

Kau-Boy’s AutoCompleter Plugin

Veröffentlich am Donnerstag, 2. Jul 2009 in WordPress

Dieses Plugin verwendet den Ajax.Autocompleter von script.aculo.us bzw. die jQuery Autocomplete Funktoin um Beiträge zu finden, die den Suchbegriff im Titel oder Inhaltstext enthalten.

Der eingegebene Text kann in den Titel der Beiträge und/oder im Inhalt gesucht werden. Es kann zusätzlich die Formatierung der Ergebnisse über eine eigene CSS Datei an den Blog angepasst werden. Es kann jeweils der Titel oder zusätzlich ein Teil des Inhalts angegeben werden, wobei hier auch die Länge des auszugebenden Inhaltes eingestellt werden kann.

(weiterlesen…)

Impressum