Seite 1 von 1

htaccess Problem

Verfasst: 15.12.2008, 15:01
von MiaWallace
Hallo zusammen! Ich habe ein Problem mit einer htaccess-Umleitung. Und zwar gibts ein paar falsche alte Links von extern auf meine Seite, die ich gerne per htaccess auf die richtige Seite leiten würde.

Die links sehen etwa so aus:


https://www.domain.de/verzeichnis1/
soll gehen auf https://www.domain.de/seite1.html

https://www.domain.de/verzeichnis1/verzeichnis2/
soll gehen auf https://www.domain.de/seite2.html

https://www.domain.de/verzeichnis1/verz ... /seite.php
soll gehen auf https://www.domain.de/seite2.html


Jetzt hab ich das Problem dass ich nicht weiß, wie ich die umleite. Ich kriege dann solche Effekte:

https://www.domain.de/verzeichnis1/verzeichnis2/ wird auf https://www.domain.de/seite1.html/seite2.html weitergeleitet. Das Problem ist, dass die externen Links nicht auf die Index-Datei gingen sondern direkt auf das Verzeichnis. Weiß jemand, wie ich sowas sauber umleiten kann?
Danke und Gruß,
Mia

Verfasst:
von

Re: htaccess Problem

Verfasst: 16.12.2008, 19:14
von Mork vom Ork
MiaWallace hat geschrieben:https://www.domain.de/verzeichnis1/
soll gehen auf https://www.domain.de/seite1.html

https://www.domain.de/verzeichnis1/verzeichnis2/
soll gehen auf https://www.domain.de/seite2.html

https://www.domain.de/verzeichnis1/verz ... /seite.php
soll gehen auf https://www.domain.de/seite2.html

Jetzt hab ich das Problem dass ich nicht weiß, wie ich die umleite. Ich kriege dann solche Effekte:

https://www.domain.de/verzeichnis1/verzeichnis2/ wird auf https://www.domain.de/seite1.html/seite2.html weitergeleitet.
Hättest du deinen Code genannt, hätte dir jemand deinen Fehler zeigen können, aber sei's drum. In /.htaccess entweder für jede URL einzeln:

Redirect permanent /verzeichnis1/ https://www.example.de/seite1.html

Die Eigenart von Redirect, Teile der Ursprungs-URL zu übernehmen, beachten (ist in der Anleitung beschrieben)!

Oder mittels eines Musters:

RedirectMatch permanent ^/verzeichnis2/ https://www.example.de/seite2.html

Leitet immer exakt auf die Ziel-URL um.

Verfasst: 17.12.2008, 09:26
von MiaWallace
Hi Mork!

Danke für Deine Antwort. Mein Code sieht so aus:

Redirect permanent /autos/ https://www.onlineshop.de/autos.html
Redirect permanent /autos/audi/ https://www.onlineshop.de/autos-audi.html

Und wenn man dann https://www.onlineshop.de/autos/audi/ aufruft wird man nicht auf https://www.onlineshop.de/autos-audi.html weitergeleitet sondern auf
https://www.onlineshop.de/autos.html/autos-audi.html

Er ersetzt also erst die Umleitung des ersten Verzeichnisses und dann die vom zweiten. :(
Ich weiß, ich hätte das Problem nicht wenn ich nicht das Verzeichnis sondern die jeweilige index-Datei anspringen würde:
Redirect permanent /autos/index.html https://www.onlineshop.de/autos.html
Redirect permanent /autos/audi/index.html https://www.onlineshop.de/autos-audi.html

Leider gibt es aber externe Links die direkt auf die nicht mehr vorhandenen Verzeichnisse verweisen. Diese möchte ich gerne weiterleiten.

Ich hoffe, mein Problem wird jetzt klarer? :)

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 17.12.2008, 10:35
von Mork vom Ork
MiaWallace hat geschrieben:Danke für Deine Antwort. Mein Code sieht so aus:

Redirect permanent /autos/ https://www.onlineshop.de/autos.html
Redirect permanent /autos/audi/ https://www.onlineshop.de/autos-audi.html

Und wenn man dann https://www.onlineshop.de/autos/audi/ aufruft wird man nicht auf https://www.onlineshop.de/autos-audi.html weitergeleitet sondern auf
https://www.onlineshop.de/autos.html/autos-audi.html

Er ersetzt also erst die Umleitung des ersten Verzeichnisses und dann die vom zweiten. :(
Das hängt mit besagter Eigenschaft von Redirect zusammen, eine Sammelumleitung einzurichten. Redirect /a/ /b/ leitet nicht nur /a nach /b um, sondern auch /a/1 nach /b/1 oder /a/2/3/4 nach /b/2/3/4. Dass da nun so ein Murks rauskommt, ist allerdings IMHO ein Serverfehler, da werde ich mal eine Korrektur vorschlagen.

Du kannst das Problem umschiffen, indem du zuerst die längste bzw. genaueste Umleitung einträgst:

Redirect permanent /autos/audi/ …
Redirect permanent /autos/ …

Alternativ kannst du folgendes nutzen:

RedirectMatch permanent ^/autos/$ …
RedirectMatch permanent ^/autos/audi/$ …

RedirectMatch prüft immer, ob das gegebene Muster exakt passt.

Oder so, passt außer auf /autos/, /autos/audi/ auch auf /autos/vw/, /autos/fiat/ oder /autos/porsche920/.

RedirectMatch permanent ^/autos/$ https://bla.bla/autos.html
RedirectMatch permanent ^/autos/([a-z0-9]+)/$ https://bla.bla/autos-$1.html
Ich weiß, ich hätte das Problem nicht wenn ich nicht das Verzeichnis sondern die jeweilige index-Datei anspringen würde:
Niemals auf /index.xy verweisen (sofern /index.xy bereits als Standardseite für / fungiert)!

Abgesehen davon, dass das Anhängen von index.xy für das Funktionieren überflüssig ist und somit nutzlose Tipperei bedeutet (der einfache Aufruf von / statt /index.xy tut's ja genauso gut), hat man später, falls mal die Seitentechnik geändert wird, auch noch den Ärger mit den Dateiendungen, weil man dann jede /index.html nach beispielsweise /index.php weiterleiten muss. Belässt man es beim einfachen /, stellt sich das Problem gar nicht erst, weil der Server ganz alleine die richtige index.xy raussucht.

Ich verweise bei mir nur noch auf Verzeichnis-URLs - und ich hätte dir geraten, es auch dabei zu belassen, aber dafür ist es jetzt wohl zu spät :)

Verfasst: 18.12.2008, 10:20
von MiaWallace
hi Mork!

vielen Dank für die Hilfe :)
Ich bin relativ neu mit dem Thema htaccess-Umleitungen und mein Vorgänger hat da scheinbar auch nicht viel Ahnung von gehabt ;)

Ich hab mich jetzt auch mal an die Umleitung eines häufigen Rechtschreibfehlers meiner Seite gemacht...

Die Url sieht etwa so aus:
https://www.domain.de/neue-auttos-blau/ ... seite.html
und ich will dann auf
https://www.domain.de/neue-autos-blau/i ... seite.html
umleiten..Dazu hab ich mir folgendes gebastelt:

RedirectMatch permanent ^/([a-zA-Z0-9_-]*)auttos([a-zA-Z0-9_-]*)/$ https://www.domain.de/$1autos$2/$

Klappt aber nicht :(
Ich brauche irgendwie einen Platzhalter für neue- und -blau, denn ich habe das Problem auch bei anderen Kombinationen wie zB.
alte-auttos-gruen
Die will ich auch mit erwischen...
Hast Du da noch einen heißen tipp für mich?
Ich habs auch schon mit
(.*) und ([^\.]+) versucht. Oder ist der Fehler ganz wo anders?

LG, Mia

Verfasst: 19.12.2008, 13:12
von Mork vom Ork
MiaWallace hat geschrieben:Die Url sieht etwa so aus:
https://www.domain.de/neue-auttos-blau/ ... seite.html
und ich will dann auf
https://www.domain.de/neue-autos-blau/i ... seite.html
umleiten..Dazu hab ich mir folgendes gebastelt:

RedirectMatch permanent ^/([a-zA-Z0-9_-]*)auttos([a-zA-Z0-9_-]*)/$ https://www.domain.de/$1autos$2/$

Klappt aber nicht :(
Ich brauche irgendwie einen Platzhalter für neue- und -blau, denn ich habe das Problem auch bei anderen Kombinationen wie zB.
alte-auttos-gruen
Vorneweg: Dein Muster ist etwas sehr weitläufig.
- Wenn vor und nach auttos ein Bindestrich steht, solltest du den bzw. diese auch exakt so im Muster angeben. Verwende …-auttos-… statt …auttos….
- Wenn vor und nach -auttos- etwas steht, dann sollte auch dies so angegeben werden. Verwende [a-zA-Z0-9_-]+ statt [a-zA-Z0-9_-]* (+ = mindestens ein Zeichen, * = Null oder mehr Zeichen).

Dein eigentliches Problem dürfte sein, dass du das Muster nach dem Schrägstrich enden lässt (Dollarzeichen = Textende). /neue-auttos-gelb/irgendeineseite.html hat aber hinter dem Schrägstrich noch den Text irgendeineseite.html.
Darüber hinaus hat das Dollarzeichen am Ende der Ziel-URL doch sicher nichts zu suchen, da möchtest du doch wieder irgendeineseite.html hinhaben, oder?

Ich täte es mal so versuchen:

RedirectMatch permanent ^/([a-zA-Z0-9_-]+)-auttos-(.+) https://www.domain.de/$1-autos-$2

Eventuell den Teil vor -auttos-… nochmals überdenken; entweder genauer spezifizieren ([a-z]+) oder vielleicht auch allgemeiner ([^/]+), je nachdem, was da hinkommt. So oder so aber niemals ein weitläufigeres Muster einsetzen als unbedingt nötig!