Problem mit und ohne www

Hallo!

Da unser shop sowohl mit als auch ohne www erreichbar war, haben wir folgende zeilen in die htaccess eingebaut (“domain” symbolisch) :

RewriteCond %{HTTP_Host} ^domain.de$ [NC]
RewriteRule ^(.*)$ http://www.domain.de/$1 [R=301,L]

Dies haben wir aus der alten OSCommerce Installation übernommen. Mit osc hat es auch prima geklappt aber mit Oxid nicht.

Wenn ich http://domain.de eingebe werde ich auch sauber auf www.domain.de umgeleitet aber wenn ich bei einem artikel das www in der Adresszeile des browsers wegnehme erhalte ich folgende Fehlermeldung

Fehler
Die angeforderte Seite ‘oxseo.php/produktXYZ.html’ konnte nicht gefunden werden.

Außerdem funktionieren alle Links der Live-View in Piwik nicht mehr. Statt auf http://www.domain.de/produktXYZ.html zeigen alle auf http://www.domain.de/piwik/http://www.domain.de/produktXYZ.html
Die Url in der Piwik installiert ist wird also vorangestellt.

Kann mir jemand sagen, wie ich das mit der 301 Weiterleitung sauber erledigen kann?

Viele Grüße,

Christian

Das würde mich auch interessieren …

Deine RewriteRule scheint ok zu sein. Die funktioniert so auch ohne Probleme. An welcher Stelle sitzt die genau in der .htaccess-Datei. Am Anfang oder mittendrin?

Das Problem mit Piwik solltest du mal genauer erklären. Was hat das mit dem Oxid-Shop zu tun?

die Regel habe ich hinten an die standard htaccess von oxid angehängt. Oder sollte es besser an den Anfang?

Das Problem mit Piwik konnte ich einfach beheben indem ich im Piwik-Ordner eine leere htaccess angelegt habe.

Die Rule reicht so nicht aus, denn Oxid leitet erstmal alles an oxseo weiter - das musst du aushebeln. Versuch es mal so:


<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_URI} !(\/core\/|\/export\/|\/modules\/|\/out\/|\/setup\/|\/tmp\/|\/views\/)
RewriteRule admin/test\.php$ admin/test.php?mod_rewrite=1

RewriteCond %{REQUEST_URI} !(\/admin\/|\/core\/|\/export\/|\/modules\/|\/out\/|\/setup\/|\/tmp\/|\/views\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !(\.html|\/|\.jpg|\.css|\.pdf|\.doc|\.gif|\.png|\.js)$ %{REQUEST_URI}/ [R=301,L]

RewriteCond %{REQUEST_URI} !(\/admin\/|\/core\/|\/export\/|\/modules\/|\/out\/|\/setup\/|\/tmp\/|\/views\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (\.html|\/)$ oxseo.php

#Ab hier das interessante
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*) http://www.deinedomain.de/ [R=301]

</IfModule>

Dann landet jmd. der das www. wegnimmt immerhin noch auf der home site, nicht im nichts.

Warum eine eigene rule?

Mit der Standard OXID htacces funktioniert z.B. http://www.just-sound.de/ und http://just-sound.de/ problemlos.