(Archiv für die Kategorie "Webprogrammierung")

Joomla: Schöne URLs ohne mod_rewrite

Seit einiger Zeit bastele ich mit dem Open Source CMS “Joomla!“, und bin mit den Resultaten relativ zufrieden. Problematisch ist allerdings, dass die Funktion, welche in Joomla aus Spaghetti-URLs wie

/index.php?option=com_content&task=category&sectionid=1&id=27&Itemid=56

elegantere und angeblich suchmaschinenfreundlichere Adressen á la “/content/view/13/77/” macht, das Apache-Modul “mod_rewrite” voraussetzt, welches in manchen Umgebungen (Hoster wie Strato, Speicherhosting, …) nicht gegeben ist.

Die Lösung des Problems findet sich in der Datei $JOOMLA/includes/sef.php. Sobald man Zeile 516 zu

return $mosConfig_live_site .'/index/'. $string . $fragment;

abändert, und unter “Global Configuration” -> “SEO” die suchmaschinenfreundlichen URLs aktiviert, funktioniert alles wie gewünscht, auch ohne .htaccess und mod_rewrite.

In anderen Umgebungen als einem Apache könnte es übrigens erforderlich sein, statt “/index/” “/index.php/” einzusetzen…



Ein paar Worte zu Flash-Cookies

Lange herrschte aus gefährlichem Halbwissen die Ansicht, Browser-Cookies würden eine gigantische Gefährdung der Privatsphäre darstellen, da sie von allen Webseiten ausgelesen werden können… Ersteres stimmt, zumindest im Ansatz, da sich das Clickverhalten der Benutzer einfach speichern und analysieren lässt, zweiteres definitiv nicht.

Ganz anders sieht die Sache bei Flash-Cookies (auch “Flash Shared Objects” genannt); schon vor einiger Zeit berichtete die c’t darüber, wie es zB. der Player bei youtube schafft, wirklich immer die Lautstärke zu speichern. Jetzt allerdings, wo Flash-Koryphäe fukami einen wirklichen guten Beitrag zu diesem Thema verfasst hat, scheint die Resonanz im Netz etwas größer zu sein; immerhin muss man berücksichtigen, dass Flash-Cookies

  • nicht einsehbar oder in irgendeiner Form kontrollierbar sind
  • zwischen allen Flash-kompatiblen Browsern bestehen
  • kein Verfallsdatum haben
  • …und nach Beendigung des Browsers fortbestehen.

Wer sich nun interessiert, welche Webseiten Daten auf dem eigenen Rechner hinterlegt haben, der wird ausgerechnet bei Adobe fündig, wo man ein Flash-Programm gebastelt hat, das rudimentären Zugriff auf diese Cookies erlaubt.



Einstieg in J2EE

Eigentlich halte ich nichts von diesem Java-Kram, von wegen Performance und Kompatibilitätsprobleme. Trotzdem versuche ich seit Sonntag, mich ein wenig in Servlets und Java Server Pages einzuarbeiten. Also erstmal den Apache Tomcat 5.5 von Apache.org gesaugt. Entpackt (im Downloadverzeichnis, versteht sich), und dann die erste Überraschung: Kein Makefile, kein configure-Script, gar nichts. Das scheint bei diesem Java-Zeugs allerdings so normal zu sein.

Manchmal muss man sich eben doch an den simplen Grundsatz “rtfm” halten. Die “README.txt” besagte dann, dass man “ant” installieren und in dem Verzeichnis mit der “build.xml” aufrufen müsse.

Komischerweise war in /usr/bin schon ein “ant” ungeklärter Herkunft vorhanden, dass ich, um Kompatibilitätsprobleme zu vermeiden, durch eine aktuellere Version ersetzt habe. Dann habe ich die oben bereits erwähnte build.xml -offensichtlich der Makefile-Pendant von Ant- gesucht, und in eben diesem Verzeichnis mit einem lässigen “sudo ant” den Tomcat gebaut. In dem Verzeichnis $SOURCEN/build befanden sich dann die benötigten Jars, Classes und Scripte.

Diese habe ich dann nach /usr/local/tomcat-5.5 kopiert, dann $PATH mittels der /etc/profile um “/usr/local/tomcat-5.5/bin” erweitert. Man will es kaum glauben, aber tatsächlich lief der Apache Tomcat nach einem “sudo catalina.sh start” sofort und lauschte an Port 8080. Noch schnell einen LaunchDaemon gebastelt (dessen exakter Inhalt hier zu finden ist) und nach /Library/LaunchDaemons kopiert. Demnächst werde ich von meinen ersten Gehversuchen mit Servlets und JSPs berichten.

UPDATE: Der LaunchDaemon macht ziemliche Probleme. Hat jemand einen Plan, warum?

UPDATE II: Mittlerweile funktionierts. Musste ein Wrapper-Script schreiben, dessen Inhalt hier zu finden ist. Der Link zu dem Launchd-Job ist mittlerweile aktualisiert.



Der Ajax-Translator

Der Ajax-Translator übersetzt eingegebenen Text noch während man tippt. Die Qualität ist nicht so berauschend, da der Ajax-Translator auf dem Yahoo-Service “Babelfish” basiert, aber er ich glaube auch, dass es dem Autor in diesem Fall eher um’s Prinzip ging…

Außerdem habe ich mal die Beta 2 von meinem neuen Template hochgeladen. Das Menu wurde nun optimiert, die Darstellung von einzelnen Beiträgen und den dazugehörigen Kommentare werde ich allerdings noch verbessern.