Zur Navigation

Umleitung einer Seite von alte Url auf neue Url per .htaccess

1 ShadowLupina (Gast)

Guten Tag

Ich versuche seit mehreren Tagen erfolglos eine alte Url auf die neue geänderte Url umzuleiten und zwar diese:


http://www.mainbrick.de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohrenbeton-pflastersteinen.html

auf diese

http://www.mainbrick.de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html

Ich habe dies sowohl mir RewriteRule als auch über einen Redirect versucht:

Meine Lösungsversuchen sehen wie folgt aus

1.)
RewriteRule
^impraegnierung-zum-schutz-von-rohrenbeton-pflastersteinen\.html$
/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html
[R=301,L]

2.)
RewriteCond %{HTTP_HOST} ^www\.mainbrick\.de$
RewriteRule
^impraegnierung-zum-schutz-von-rohrenbeton-pflastersteinen\.html$
http://www.mainbrick.de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html
[R=301,L]

3.)

RewriteRule
^shop\/product\/impraegnierung\/impraegnierung-zum-schutz-von-rohrenbeton-pflastersteinen\.html$
shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html
[R=301,L]

4.)

#Redirect ^shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html$ http://www.mainbrick.de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html [R=301,L]

5.)
#Redirect permanent \de\shop\product\impraegnierung\impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html http://www.mainbrick.de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html

Was genau habe ich falsch gemacht...oder besser gesagt wie mache ich es richtig?

Ich bin auf diesem Gebiet auch noch ein ziemlich Neuling

Ich hoffe ihr könnt mir helfen

mfg

ShadowLupina

06.11.2013 20:01

2 Jörg

Die mod_rewrite Rule muss in einer Zeile stehen:

RewriteRule ^impraegnierung-zum-schutz-von-rohrenbeton-pflastersteinen\.html$ http://www.mainbrick.de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html [R=301,L]

Außerdem braucht es dann noch ein "RewriteEngine on" in der .htaccess Datei

Mit der Redirect-Direktive sollte es so gehen:

Redirect permanent /de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohrenbeton-pflastersteinen.html http://www.mainbrick.de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html

Die Verzeichnisse werden mit Slashes ("/") getrennt, nicht mit Backslashes ("\")

Mit einem "#" am Anfang kommentierst du die Direktive aus, d.h. sie ist dann deaktiviert!

Falls noch mod_rewrite Rules in der .htaccess Datei stehen, kann das Weiterleitungsziel der Redirect Direktive dadurch geändert werden. In dem Fall solltest du auch mit mod_rewrite weiterleiten und die Rule möglichst weit oben positionieren.

Edit:

du hattest in den letzten Beispielen nicht von rohrenbeton, sondern von rohren-beton nach rohren-beton weitergeleitet

06.11.2013 20:29 | geändert: 06.11.2013 20:33

3 ShadowLupina (Gast)

Oh da sind einige Fehler beim Beitrag erstellen aufgetreten...

Also RewriteEngine On ist gesetzt

Die RewriteRules stehen alle in einer Zeile zumindest in htaccess

Das mit den Slashs Versuch ich mal

Gruß

Sabine

06.11.2013 20:47

4 ShadowLupina (Gast)

Ok

Also die Redirect scheint nicht ausgeführt zu werden..zumindest passiert nix..woran kann dass liegen?


"Falls noch mod_rewrite Rules in der .htaccess Datei stehen, kann das Weiterleitungsziel der Redirect Direktive dadurch geändert werden. In dem Fall solltest du auch mit mod_rewrite weiterleiten und die Rule möglichst weit oben positionieren."

wie genau meinst du das? Weiterleitungsregeln die mit mod_rewrite beginnen..sind keine enthalten...nur welche mit RewriteRule...oder vorher mit ner RewriteCond abfrage

....

Ich hab jetzt noch diese Regel versucht:

Redirect /produkte/pflasterfugenmoertel.html http://www.mainbrick.us/products/paving-joint-filler.html

und wollte damit von

www.mainbrick.us/produkte/pflasterfugenmoertel.html nach www.mainbrick.de/products/paving-joint-filler.html

weiterleiten

nur das ergebnis sieht dann wie folgt aus

http://www.mainbrick.us/products/paving-joint-filler.html?q=produkte/pflasterfugenmoertel.html

woran könnt das liegen?

06.11.2013 21:03

5 Jörg

Das liegt daran, dass folgende RewriteRules der Ziel-URL noch einen Query String anhängen. In dem Fall musst du wie gesagt, mod_rewrite zur Weiterleitung verwenden.

Weiterleitungsregeln die mit mod_rewrite beginnen..sind keine enthalten...nur welche mit RewriteRule

mod_rewrite heißt das Webserver-Modul zum "Rewriten" von URLs und "mod_rewrite Rules" sind Direktiven, die mit dem Schlüsselwort "RewriteRule" beginnen.

06.11.2013 21:16

6 ShadowLupina (Gast)

mod_rewrite heißt das Webserver-Modul zum "Rewriten" von URLs und "mod_rewrite Rules" sind Direktiven, die mit dem Schlüsselwort "RewriteRule" beginnen.

Aso ok danke.


RewriteCond %{HTTP_HOST} ^www\.mainbrick\.us$
RewriteRule ^produkte/pflasterfugenmoertel\.html http://www.mainbrick.us/products/paving-joint-filler.html [R=301,L]

So hat die Regel jetzt funktioniert


----

aber wie würdest du jetzt

http://www.mainbrick.de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohrenbeton-pflastersteinen.html

auf diese

http://www.mainbrick.de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html

weiterleiten?

Meine RewriteRules funktionieren ja alle nicht :(

07.11.2013 09:05

7 Jörg

Wie im ersten Code-Beispiel in Beitrag 2

Allerdings beginnt der Pfad dort erst mit der dritten Verzeichnisebene (ich hatte das so von deinem Beispiel übernommen) - diese Rule müsste entsprechend in der .htaccess Datei im Verzeichnis /shop/product/ zu finden sein. Wenn du die Rule stattdessen in die .htaccess Datei des Hauptverzeichnisses schreiben möchtest, musst du den Pfad vorne noch entsprechend ergänzen ("RewriteRule ^shop/product/...")

07.11.2013 09:25 | geändert: 07.11.2013 09:26

8 ShadowLupina (Gast)

Vielen Dank für den Hinweis mit der Verzeichnisebene..der war schon mal Gold wert

htaccess für den Shop liegt im ordner mainbrick/shop

einen Ordner für die Produkte selbst gibt es nicht

also müsste die richtige Regel ja

RewriteRule ^product/impraegnierung/impraegnierung-zum-schutz-von-rohrenbeton-pflastersteinen\.html http://www.mainbrick.de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html [R=301,L]

lauten? Aber wenn ich diese so in htaccess einfügen bekommen ich Internal Server Error

habe auch dies probiert

RewriteRule ^product/impraegnierung/impraegnierung-zum-schutz-von-rohrenbeton-pflastersteinen\.html /product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html [R=301,L]

führt zum selben Ergebnis

und selbst wenn ich diese Regeln in nem Komentar setze..kommt dieser Fehler weiterhin...ich muss jedes mal die alte htaccess wieder hoch laden...

woran liegt dies und was ist an den regeln falsch?

07.11.2013 10:32

9 Jörg

Aber wenn ich diese so in htaccess einfügen bekommen ich Internal Server Error

Vermutlich, weil du da einen Zeilenumbruch drin hast - die Rule muss wie gesagt in eine Zeile

Wenn man eine Direktive in der .htaccess Datei der besseren Lesbarkeit wegen umbrechen möchte, muss man die Zeile vor dem Umbruch mit einem Backslash abschließen

RewriteRule ^product/impraegnierung/impraegnierung-zum-schutz-von-rohrenbeton-pflastersteinen\.html \
http://www.mainbrick.de/shop/product/impraegnierung/impraegnierung-zum-schutz-von-rohren-beton-pflastersteinen.html [R=301,L]

Nach dem Backslash darf dann aber kein Leerzeichen oder Tab mehr stehen!

07.11.2013 10:56 | geändert: 07.11.2013 10:56

10 ShadowLupina (Gast)

Also in der Regel selbst ist kein Zeilenumbruch drin...alles in einer Zeile..nur halt Quelle und Ziel sind durch ein Leerzeichen getrennt..aber das ist erlaubt, oder?

ich hab auch die Regel von dir so eingefügt...kommt aber wieder dieser Fehler

es gibt nur nach der Regel nen Zeilenumbruch...weil weiter unten noch weitere Regeln folgen

07.11.2013 11:10