Joomla 1.5 SEO/SEF Error 404 oder 500
Grmbl. Da versucht man nur zwei kleine Klicks in der Joomla Installation und die ganze Seite funktioniert nicht mehr.
In Joomla kann man suchmaschinenfreundliche URLs einschalten. Dies geht über die Konfiguration im Admin und dem Anwählen von Suchmaschinenfreundliche URLs und mod_rewrite nutzen. Soweit so gut, aber nachdem ich brav die htaccess.txt Datei in eine .htaccess umbenannt hatte kam lediglich ein Internal Server Error 500 auf jeder Unterseite. Wenn mod_rewrite ausgeschaltet war, funktionierten die Untermenüs nicht mehr und man bekam die übliche Joomla 404 Fehlerseite.
Hier also eine Lösungsanleitung. Ich hab zumindest bisher keine umfassende gefunden. Die besten Hinweise aus denen ich auch die checliste aufgebaut habe, fanden sich unter http://www.scribd.com/doc/2300167/Joomla-v-15-Configure-and-troubleshoot-SEF-URLs und unter http://www.poboxinternet.co.uk/hosting-accounts/31-joomla-seo-modrewrite-produces-500-errors
Checkliste/Lösungsansatz
Generelles
- PHP Version checken (unter http://help.joomla.org/content/view/1938/302/ findet man die Mindestvoraussetzungen)
- Joomla auf eine final Version upgraden, falls man eine beta oder Release Candidate Version nutzt
- Checken, ob man die htaccess.txt Datei korrekt in .htaccess umbenannt hat
.htaccess
Prinzipiell sollte das reichen. Falls man immer noch Fehler erhält, sollte man die .htaccess Datei verändern.
SymLinks
In der .htaccess Datei findet sich diese Zeile:
## Can be commented out if causes errors, see notes above.
Options +FollowSymLinks
Dies sollte man auskommentieren, da die Option oft schon serverseitig gesetzt ist. Eventuell auch so, daß es verboten ist, die Einstellung in der htaccess Datei zu ändern. Leider steht im Kommentar nur etwas von “If using it causes your server to error out” und nicht von einer konkreten Fehlermeldung, insofern weiß man nicht, ob das aus-/einkommentieren was bringt. Im Notfall muss man sich mit dem Administrator absprechen.
mod_rewrite testen
Es kann sein, daß mod_rewrite serverseitig generell ausgeschaltet ist. Um das zu testen, sollte man die Zeile
RewriteRule (.*) http://www.google.com/
einfügen. Man kann natürlich auch eine andere Domain wählen
Wenn man jetzt auf einen Menüpunkt in der Seite klickt, sollte man bei Google landen. Ist das nicht der Fall, ist mod_rewrite ausgeschaltet und SEO/SEF kann nicht funktionieren (zumindest nicht mit mod_rewrite, klar…)
RewriteBase setzen
Die RewriteBase ist standardmäßig auskommentiert, sollte aber auf den kompletten(!) Serverpfad bis zu dem Ordner, in dem Joomla installiert ist, gesetzt werden, z.B.
RewriteBase /var/www/joomla
Die letzte Möglichkeit
Falls das alles nicht funktioniert, kann man sich noch die Rewrite Regeln genauer ansehen. In meiner Version war ein Fehler enthalten und zwar genau in den Zeilen
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
Wie man sieht, wird zunächst verhindert, daß der Ausdruck /index.php neu umgeschrieben wird, damit keine Loops entstehen. In der dritten Zeile wird dann alles in index.php umgeschrieben, was bedeutet, daß die Rewrite Condition von oben nicht greifen kann und eine Loop entsteht. Dies wird man auch in den Serverlogs sehen, sofern man Zugang dazu hat. Die Lösung ist recht simpel. Man muss lediglich aus dem index.php ein /index.php machen, so daß die korrekten Zeilen so aussehen:
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) /index.php
Und wenn jetzt immer noch ein Fehler entsteht, sollte man sich vertrauensvoll an die Joomla Foren wenden (und am Besten hier die Lösung als Kommentar hinterlassen
Ärgerlich. Bei mir war es wirklich die letzte Option…
