Redirect klappt nicht

Hallo Community, leider kenne ich mich da nicht gut aus wenn es darum geht URLs weiterzuleiten. Ich habe die SEO/Router Einstellungen geändert und seit dem generierte Google bereits über 15.000 Fehler... [b]Die alte Artikel-URL:[/b] {$sArticle.supplier}/{$sArticle.name}.html [b]Die neue Artikel-URL:[/b] {$sArticle.name}.html Macht Shopware das nicht automatisch, dass die URLs weitergeleitet werden wenn man Einstellungen daran vornimmt? Kann mir jemand dabei helfen bzw. sagen was ich nun in meine htaccess hinzufügen muss, damit das wieder richtig läuft? Hier der Inhalt meiner .htaccess-Datei: [code]
RewriteEngine on

#RewriteBase /shopware/

RewriteRule shopware.dll shopware.php
RewriteRule files/documents/.* engine [NC,L]
RewriteRule backend/media/(.*) media/$1 [NC,L]

RewriteCond %{REQUEST_URI} !(/(engine|files|templates)/)
RewriteCond %{REQUEST_URI} !(/media/(archive|banner|image|music|pdf|unknown|video)/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) shopware.php [PT,L,QSA] </ifmodule># Staging-Rules start #SetEnvIf Host "staging.test.shopware.in" ENV=staging DirectoryIndex index.html DirectoryIndex index.php DirectoryIndex shopware.php # Disables download of configuration<files> Deny from all </files># Enable gzip compression<ifmodule mod_deflate.c> # disable compression on iconset due to loading problems in google chrome on windows SetEnvIfNoCase Request_URI icon-set.css no-gzip dont-vary

AddOutputFilterByType DEFLATE text/html text/xml text/plain text/css text/javascript application/json



ExpiresActive on
ExpiresDefault „access plus 1 month“
FileETag None

Header append Cache-Control „public“
Header unset ETag


# Disables auto directory index
Options -Indexes

Options -MultiViews

php_value memory_limit 128M

php_value max_execution_time 120

php_value upload_max_filesize 20M

php_flag phar.readonly off
php_flag magic_quotes_gpc off
php_flag session.auto_start off
php_flag suhosin.session.cryptua off
php_flag zend.ze1_compatibility_mode off
# AddType x-mapp-php5 .php # AddHandler x-mapp-php5 .php[/code] Gruß, Thomas K.

Hallo, das ist nicht so einfach, jeden beliebigen Ausruck auf einen neuen umzuschreiben. Die Apache Rewrite-Rules folgen den Regeln von Regular Expression bei Perl [perl.org]. Eine grobe Übersicht gibt es bei: http://httpd.apache.org/docs/2.2/rewrite/intro.html Man muss aber wirklich jede theoretisch denkbare URL-Kobination im ersten Pattern berücksichtigen und die Auswirkungen der Substitution auf die folgenden Rewrite-Rules und Conditions im Shopware-Original. Auf jeden Fall intensiv testen anschließend. Ich würde es mal hiermit als erste RewriteRule probieren, ist aber ungetestet. Einfügen in „Zeile9“ hinter RewriteRule backend/media/(.*) media/1 [NC,L] [code]RewriteRule /.\*/(.\*).html /$1.html [R,L,NC][/code]

Danke für deine Antwort. RewriteRule ^/.\*/(\*.)\.html$ /$2.html [R]verursacht leider mehr Probleme, als dass es löst. Internal Server Error :frowning: Gibt es noch eine andere Methode?

Hallo, also internal server error verwundert mich jetzt, eigentlich sollte das höchstens in einem Loop oder 404 enden. Es könnte sein, dass das $2 später in der htaccess Probleme verursacht, da etwas weiter unten noch ein (*.) auftaucht und normalerweise $2 wäre. ich denke, da wäre auch noch ein Fehler im Rewrite, aber der dürfte nur 404er Fehler verursachen. Wirklich nur diese Zeile geändert? Die einfachste Art und Weise ist ein direkter Redirect permanent der alten auf die neuen Artikellinks. Das dürften nur einige Zeilen sein, fürchte ich. Dann sind die Suchmaschinen auch zufrieden. Jetzt ist die Frage, ob ihr “wertvolle” Ranking Informationen auf Artikellinks habt. Die 404er Fehler sortieren die Suchmaschinen mit der Zeit aus dem Index und haben keinen unmittelbaren negativen Effekt.

Ich habe die RewriteRule jetzt mal auf einem apache Webserver aufgespielt, da entsteht kein Internal Error. Was für ein Webserver läuft denn dort?

Hmmm… jetzt habe ich es noch mal getestet und es läuft doch. Dann war das wohl ein anderer Grund mit dem Fehler. Aber ich sehe dennoch keinerlei Unterschied zu vorher. Die Weiterleitung funktioniert also beim mir nicht. Also 20.000 Produkte sind auf einen Schlag nicht mehr auffindbar und das denke ich mag google keinesfalls, oder?

Ja die Übergabe in die Variable klappt nicht so richtig, das habe ich schon gemerkt. Den Regular Expression am Anfang würde ich auch versuchen so spezifisch wie möglich zu halten. Aber bei den Angaben kann man nicht sehen, welche Zeichen nun alles vorkommen dürfen. Grundsätzlich funktioniert die RewriteRule aber an dieser Stelle. Mit den beiden Patterns muss man sich jetzt halt man beschäftigen (wie immer bei RegEX :frowning: ). Daher waren die beiden Quellen angegeben. ich habe für euer System auch kein Testszenario, da müsst ihr schon selber ran. Also Google sagt, es stört sie nicht, wenn ordnungsgemäß ein 404 übergeben wird. Dies tut Shopware automatisch, zeigt einem echten Besucher aber die Startseite an. Es tauchen nur recht lange viele Fehler in den Webmastertools von Google auf. Da darf man nicht nervös werden. Die neuen “URLs” starten in ihrer “Reputation” bei Google wieder bei 0 und Direktlinks von anderen Seiten gehen eben immer auf die Startseite. Aber ich denke, so viele Direktlinks wird es bei einem Einzelhändler auf einzelne Artikel nicht geben, oder? Das andere Seiten nicht mehr auf eine Produktdetailseite verlinken ist eigentlich der größte Nachteil, da Google dies positiv gewichtet. Wenn das mit der RewriteRule nicht hinhaut, dann kann man die externen Links auf die Seite bei Google herausfinden und nur für diese Seiten einen Redirect permanent setzen. Das ist wahrscheinlich die praktikabelste Lösung bei euch. PS: Das Template funktioniert nicht richtig, wenn das Browserfenster kleiner als die Shopbreite ist. Wahrscheinlich dann auch auf den Tablets nicht