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…

August 31st, 2009 at 00:35
Hallo Oliver
Vielen Dank für deinen Beitrag.
Ich habe schon etliche Stunden nach einer Lösung für mein SEO Problem gesucht und bin bei dir fündig geworden.
Es war bei mir ebenfalls der “/index.php” Eintrag, der die “Erlösung” brachte.
Vielen Dank
Gruss
Roland
September 5th, 2009 at 18:55
Hallo,
wirklich dute Tipps, bei mir wars auch die letzte Option!
Gruß Dennis
September 9th, 2009 at 19:22
Dankeschön! Hat mir weitergeholfen!
Grüße aus Duisburg
Nikolay
Februar 14th, 2010 at 04:51
Danke.
Bei meinem Provider netcup.de musste ich im Confixxx unter Einstellungen | Httpd Spezial das mod_rewrite auf on gesetzt.
Dann habe ich die Anpassungen wie oben beschrieben durchgeführt. Die Angabe RewriteBase /var/www/joomla
war bei mir nicht relevant.
Wichtig ist noch, dass man die .htaccess immer als UTF-8 abspeichert.
April 1st, 2010 at 21:51
Danke für deinen Beitrag, bei mir war auch die “/index.php”
Gruß
Apartmani Croatia
Juni 7th, 2010 at 20:00
Hallo
Index.php bearbeiten ist bei mir leider nicht die Lösung!
Muss ich auch index2.php bearbeiten?
Komme nicht mehr in den Backend um Sef auszuschalten!
mfg
Juni 7th, 2010 at 20:29
@Alexander:
Du musst die index.php nicht anpacken, sondern die .htaccess und zwar das
RewriteRule (.*) index.php
ändern in:
RewriteRule (.*) /index.php
August 5th, 2010 at 22:49
Danke, der /index.php-Fall war es auch bei mir.