Hallo,
ich bin gerade wegen ModRewrite total am verzweifeln. Vielleicht kann mir von euch ja da einer helfen :)
Also ich habe ein paar Domains, die alle auf die gleiche Website zeigen. Habe zu dem namen jeweils die .com und die .net sowie eine Variante mit einem häufigen Sprachfehler.
Die werden per ModRewrite alle auf die Hauptdomain geleitet. Dabei wird auch gleich ein www. am Anfang angehängt wenn man keines eingegeben hat.
Das sieht so aus:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.net$
RewriteRule ^(.*)$ http://www.example.net/$1 [L,R=301]
Das klappt alles wunderbar - bis auf meine Statistik (die beim Hosting dabei is). Wir sind die Woche auf einen neuen Server umgezogen. Administriert wird der mit ServControl und AwStats läuft als Statistik. Die Statistik ruft man über /usage bzw. aus Servcontrol aus.
Jetzt habe ich das Problem, dass ich wenn ich zur Statistik will und kein www. eingebe (so wie es auch bei dem Link aus Servcontrol passiert) ja durch die oben zitierte ModRewrite Schleife durch muss. Dabie stöhrt sich AwStats bzw. die .htaccess oder was auch immer in dem Ordner and dem [R=301].
Ich werde dann auf eine 401 Fehlerseite weitergeschickt und bekomme das aber mit 404 quittiert, weil er die 401 Fehlerseite nicht findet (was auch merkwürdig ist).
Wenn ich [R=301] weglasse klappt es ohne Probleme.
Jetzt zu meiner Frage:
Was kann ich tun?
Ich habe an der .htacces im Hauptverzeichnis und auch an denen von AwStat herumgespielt - es bringt alles nichts. (Bis auf das Löschen von [R=301] aber das soll ja auch nicht sein...)
Ich würde deshalb gerne irgendwie den Ordner usage aus der ganzen Rewrite Geschichte ausklammern. Ich habe das auch schon so probiert:
RewriteCond %{REQUEST_URI} !^.*usage.*$
RewriteCond %{HTTP_HOST} ^example.net$
RewriteRule ^(.*)$ http://www.example.net/$1 [L,R=301]
Leider klappt das nicht. Vielleicht habe ich da auch was falsch verstanden aber ich dachte damit würd eich den Ordner ausschließen.
Habe auch mit
RewriteCond %{REQUEST_URI} ^.*usage.*$
RewriteCond %{HTTP_HOST} ^example.net$
RewriteRule ^(.*)$ http://www.example.net/$1 [L]
versucht vorzubeugen, dass die anderen Rules - mit R=301 - überhaupt durchgeführt werden - weil ich dachte das [L] dafür sorgt, dass kein RewriteCond/RewriteRule-Paar mehr ausgeführt wird...falsch gedacht.
Also ich würde mich echt freuen, wenn mir da einer einen Tipp geben kann - die Tutorials sind da leider nciht hilfreich :(
Gruß
Alex