Seite 1 von 1
301 Umleitung
Verfasst: 24.08.2009, 18:27
von Billy04
Ich habe ein Problem mit einer 301er Weiterleitung...
kann mir jemand mitteilen wie ich folgende url
www.meineseite.de/trennkost?subthema=89
auf
www.meineseite.de/trennkost/23/fruechte
umleiten kann...
irgendwie klappts nicht.
vielen dank
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Re: 301 Umleitung
Verfasst: 24.08.2009, 19:08
von Mork vom Ork
Billy04 hat geschrieben:www.meineseite.de/trennkost?subthema=89 auf www.meineseite.de/trennkost/23/fruechte umleiten kann...
Mal angenommen, du hast einen Apache-Webserver:
Umleitungen werden normalerweise mit
Redirect eingerichtet. Redirect kennt aber nur den Pfad der URL, das Fragezeichen und alles, was dahinter kommt, gehört zu den Parametern - diese lassen sich nur mit
RewriteCond prüfen. Ergo in /.htaccess:
RewriteEngine on
RewriteCond %{QUERY_STRING} =
subthema=89
RewriteRule ^
trennkost$ /trennkost/23/fruechte? [R=301,L]
Die Zuordnung sollte einleuchten. Das Fragezeichen am Ende der Ziel-URL sorgt dafür, dass die ursprünglichen Parameter nicht weiter mitgeschleppt werden (ohne Fragezeichen würdest du bei /trennkost/23/fruechte?subthema=89 landen).
Verfasst: 24.08.2009, 19:32
von Billy04
das leuchtet mir ein - aber dann würde es bei
index.php?thema=14
ja so heissen:
RewriteCond %{QUERY_STRING} =thema=14
RewriteRule ^index.php$ /meinezielurl [R=301,L]
klappt aber nicht...

Verfasst: 24.08.2009, 19:56
von bloddy newbie
Hallo,
das erste "=" ist Mork sicher irgendwie dazwischen gerutscht! Ohne klappts auch:
Code: Alles auswählen
RewriteCond %{QUERY_STRING} ^thema=14$
RewriteRule ^index.php$ /meinezielurl [R=301,L]
^ bedeutet am Anfang des Queries muss "thema" stehen
$ bedeutet am Ende des Queries muss 14 stehen
Kommen noch andere Parameter in den URIs vor, dann lass die beiden Begrenzer weg oder formuliere das Pattern um.
Grüße BN
Verfasst: 24.08.2009, 21:10
von Mork vom Ork
Billy04 hat geschrieben:dann würde es bei index.php?thema=14 ja so heissen:
RewriteCond %{QUERY_STRING} =thema=14
RewriteRule ^index.php$ /meinezielurl [R=301,L]
Richtig.
klappt aber nicht... :(
Doch, das tut, was es soll. Du rufst im Browser example.com/index.php?thema=14 auf? Und was passiert dann, bleibt die Adresse stehen und es erscheint ein 404?
Verfasst: 24.08.2009, 21:14
von Mork vom Ork
bloddy newbie hat geschrieben:das erste "=" ist Mork sicher irgendwie dazwischen gerutscht!
Nein, das gehört genau da hin.
RewriteCond %{QUERY_STRING} ^thema=14$
Bei feststehenden Texten statt eines simplen, festen Vergleichs (dafür steht das einleitende Gleichheitszeichen) einen Mustervergleich einzusetzen, ist IMHO eine leider weit verbreitete Unsitte, genauso wie …
RewriteRule ^index.php$ /meinezielurl [R=301,L]
… den Punkt als Platzhalter einzusetzen, obwohl eigentlich ein echter Punkt (Muster \.) gemeint sein sollte.
^ bedeutet am Anfang des Queries muss "thema" stehen
$ bedeutet am Ende des Queries muss 14 stehen
Demnach würde das Muster auch auf themamitirgendwasdazwischen14 passen, was es aber nicht tut. Das Muster
^thema=14$ steht für „
Anfang, gefolgt vom Text
thema=14, gefolgt vom
Ende“. Und bitte nicht solche grausigen Wortvergewaltigungen wie „Queries“ benutzen. Bitte!