Testen, ob "mod_rewrite" am Webserver ordnungsgemäß arbeitet
Auch wenn mod_rewrite am Webserver offenbar installiert ist, kann es passieren, dass es nicht ordnungsgemäß arbeitet.
Um zu testen ob mod_rewrite funktioniert, legen Sie im Root-Verzeichnis Ihres Shops eine neue .htaccess Datei mit folgendem Inhalt an:
RewriteEngine On RewriteRule ^ http://www.google.com [R,L]
Laden Sie die Datei auf Ihren Webserver und rufen Sie dann im Browser http://www.ihrshop.com/irgendwas auf ("irgendwas" können Sie durch einen beliebigen Begriff ersetzen, den es NICHT als Verzeichnis auf Ihrem Webserver gibt).
Wenn mod_rewrite ordnungsgemäß arbeitet, sollten Sie nun automatisch auf der Website www.google.com landen.
Wenn Sie nicht weitergeleitet werden....
Sollte beim Aufruf der URL nichts geschehen kann dies mehrere Gründe haben:
Lösung 1: mod_rewrite ist nicht aktiv
Bitte prüfen Sie, ob das Modul mod_rewrite auf Ihrem Webserver überhaupt geladen ist.
So prüfen Sie, ob mod_rewrite verfügbar ist...
Lösung 2: Die Direktive "AllowOverride" ist falsch konfiguriert
In der httpd.conf (dem Konfigurationsfile Ihres Apache Webservers) ist die Direktive "AllowOverride" für Ihren <Directory> Abschnitt auf none gesetzt oder erlaubt nicht "FileInfo" zu überschreiben.
Mittels "AllowOverride" wird prinzipiell festgelegt, was mit einer .htaccess Datei
alles genützt werden kann (bzw. welche Einstellungen der httpd.conf durch die .htaccess "überschrieben" werden dürfen). Ist es hier nicht gestattet die "FileInfo" zu überschreiben, funktioniert mod_rewrite nicht.
Sollten Sie Zugriff auf die httpd.conf haben ändern Sie AllowOverride auf
AllowOverride FileInfo
Bei einigen Webservern ist es nötig, diese Direktive auf "All" zu setzen. Sollte "AllowOverride FileInfo" also keinen Erfolg bringen, testen Sie bitte folgende Einstellung:
AllowOverride All
Wenn Sie keinen Zugriff auf die httpd.conf haben (bei nahezu allen Shared-Hosting Anbietern), wenden Sie sich bitte an Ihren Provider und ersuchen Sie darum, die Direktive "AllowOverride" entsprechend zu setzen (damit die FileInfo durch die .htaccess überschrieben werden darf).
Wichtig ist, dass AllowOverride im korrekten <Directory>-Container gesetzt wird (hiervon gibt es mehrere). Setzen Sie AllowOverride in jenem Container, der Ihr DocumentRoot enthält (z.B.: <Directory /www/ihrshop/htdocs>) jedoch nicht im <Directory /> Container!
Lösung 3: Die Angabe von RewriteBase fehlt
Bei manchen Webservern (oder wenn der Shop in einem Unterverzeichnis läuft) ist es nötig, die "Ausgangsbasis" für mod_rewrite zu definieren (in welchem Verzeichnis soll mod_rewrite arbeiten?).
Ergänzen Sie die .htaccess Datei dafür um folgende Zeile:
RewriteEngine On RewriteBase / RewriteRule ^ http://www.google.com [R,L]
In diesem Fall wird vom Root Verzeichnis des Webservers ausgegangen. Liegt Ihr Shop nun in einem Unterverzeichnis "shop", könnte die Zeile auf "RewriteBase /shop" lauten.




















