Joomla 1.5 SEO/SEF Error 404 oder 500

August 11, 2009 - 6:13

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…

8 Responses to “Joomla 1.5 SEO/SEF Error 404 oder 500”

  1. Roland Says:

    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 :-)

  2. Dennis Says:

    Hallo,

    wirklich dute Tipps, bei mir wars auch die letzte Option!

    Gruß Dennis

  3. Nikolay Says:

    Dankeschön! Hat mir weitergeholfen!

    Grüße aus Duisburg
    Nikolay

  4. Feuerwehr Waigolshausen Says:

    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.

  5. Apartmani-croatia.eu Says:

    Danke für deinen Beitrag, bei mir war auch die “/index.php”

    Gruß

    Apartmani Croatia

  6. Alexander Says:

    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

  7. admin Says:

    @Alexander:
    Du musst die index.php nicht anpacken, sondern die .htaccess und zwar das

    RewriteRule (.*) index.php

    ändern in:

    RewriteRule (.*) /index.php

  8. Dominik Says:

    Danke, der /index.php-Fall war es auch bei mir.

Leave a Reply