claut
June 9, 2010, 4:42pm
1
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
Niklas
June 10, 2010, 12:57pm
2
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?
claut
June 10, 2010, 2:27pm
4
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.