Zur Navigation

Alte Kategorien (Verzeichnisse) in neue Struktur mit URL Rewrite (bei OXID CE)

1 Armin (Gast)

Hallo Jörg,

ich sitze seit Stunden vor Deinem Forum und habe sämtliche Varianten ausprobiert. Nichts hat funktioniert.

Ich habe einen OXID CE Shop, der eine (bisherige) Kategorienstruktur hat und jetzt optimiert wird. Die .htaccess im Root behandelt URL Rewriting (Umleitung auf die PHP-Datei "oxseo.php"). Das macht die Sache etwas schwieriger (für mich).

So sieht die .htaccess aus:
<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} oxseo\.php$
RewriteCond %{QUERY_STRING} mod_rewrite_module_is=off
RewriteRule oxseo\.php$ oxseo.php?mod_rewrite_module_is=on [L]

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

AddType application/x-httpd-php xml

</IfModule>

# disabling log file access from outside
<FilesMatch "(EXCEPTION_LOG\.txt|\.log$|\.tpl$)">
order allow,deny
deny from all
</FilesMatch>

Options -Indexes
DirectoryIndex index.php index.html

Wenn z.B. die URL
http://www.domain.de/oberkat_alt/unterkat_alt/produkt_xy.html
aufgerufen wird, soll die "neue" URL so aussehen (und von der oxseo.php verarbeitet werden):

1.
http://www.domain.de/neuekat/produkt_xy.html

oder auch

2.
http://www.domain.de/neuekat1/neuekat2/produkt_xy.html

Ich hoffe, das war verständlich ;-)

Was muss ich da nun in der .htaccess verändern und wo kommen die neuen Zeilen rein. Natürlich sind es mehr als 1 Kategorie, die sich verändern wird.

Tausend Dank schon einmal!!

29.10.2010 22:52

2 Jörg Kruse

Weiterleitungen sollten möglichst weit oben - in diesem Fall direkt unterhalb der RewriteBase Direktive - platziert und mit dem L-Flag versehen werden, damit andere mod_rewrite Rules nicht dazwischen funken.

Die angegebene Weiterleitung würde ich so probieren:

RewriteRule ^oberkat_alt/unterkat_alt/produkt_xy\.html$ http://www.domain.de/neuekat/produkt_xy.html [R=301,L]

29.10.2010 23:13

3 Armin (Gast)

Vielen Dank schon einmal für Deinen Tipp!

Leider weiß ich aber nicht, was der User für ein product_xy eintippt. Es sollen ja alle in der Kategorie befindlichen Produkte ab sofort in der neuen Kategorie zu finden sein.

Dies hier (aus Deinem Forum) hat schon die URL umgeschrieben:
RewriteRule Kat1/Kat2/(.*) http://www.domain.de/Kat2/$1 [L,R=301]
wobei ja Kat2 auch eine x-beliebige neue Kat sein könnte.

Was aber jetzt passiert, ist, dass das oxseo.php die URL nicht mehr verarbeiten kann/will und mit einem 404 Fehler daherkommt.

Dieser Eintrag war auch direkt unter der RewriteBase/

Gruß

Armin

29.10.2010 23:44

4 Armin (Gast)

STOP!!

Jetzt funktioniert es!

Mit der o.g. Codezeile wird die URL umgeschrieben. Man muss hier aber noch im OXID Admin die SEO URL umstellen (auf die neue Struktur). Da kam ich erst jetzt drauf.

Trotzdem vielen Dank, denn Dein Forum hat mir geholfen ;-)

Gute Nacht!

Armin

29.10.2010 23:54

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]