Zur Navigation

Permanent Weiterleitung 301 [2]

11 Jörg

Für den Query String benötigst du eine eigene Bedingung, da sich das Muster nur auf Verzeichnispfad und Dateiname bezieht

Bei einer 301 Weiterleitung musst du zudem die vollständige URL als Ziel angeben, sowie den Flag R=301

Das würde dann in etwa so ausschauen (ungetestet);

RewriteCond %{QUERY_STRING} q=blabla
RewriteRule ^index.php$ http://example.com/index.php?q=blabla&db=affili [R=301]

24.05.2010 18:04 | geändert: 24.05.2010 18:05

12 mirkz

Brauch hier doch eine 301 Weiterleitung wegen der Livesuche. Das ganze generiert viel doppleten Content da sämliche &db= angaben zum selben ergebnis führen...

ich habs mal so verscuht... geht abe nicht:

RewriteRule ^index.php?q=(.+)&db=affili$ http://www.blabla.eu/angebot/$1/affili.html [L,R=301]
RewriteRule ^index.php?q=(.+)&db=ebay$ http://www.blabla.eu/angebot/$1/affili.html [L,R=301]
RewriteRule ^index.php?q=(.+)&db=amazon$ http://www.blabla.eu/angebot/$1/affili.html [L,R=301]
RewriteRule ^index.php?q=(.+)$ http://www.blabla.eu/angebot/$1/affili.html [L,R=301]

also mein Ziel ist es alle &db= angaben und auch urls ohne die &db auf die gleiche Seite umzuleiten

lg mirk

15.06.2010 11:13

13 Jörg

Wie in Beitrag 11 beschrieben, muss der Query String (das, was nach dem "?" kommt) in einer entsprechenden RewriteCond abgehandelt werden. Geklammerte Ausdrücke kannst du hierbei durch "%1", "%2" etc. in der Ziel-URL wiederaufnehmen

RewriteCond %{QUERY_STRING} q=(.+)&db=affili
RewriteRule ^index\.php$ http://www.blabla.eu/angebot/%1/affili.html [L,R=301]

15.06.2010 12:34

14 mirkz

Zitat von Jörg
Wie in Beitrag 11 beschrieben, muss der Query String (das, was nach dem "?" kommt) in einer entsprechenden RewriteCond abgehandelt werden. Geklammerte Ausdrücke kannst du hierbei durch "%1", "%2" etc. in der Ziel-URL wiederaufnehmen

RewriteCond %{QUERY_STRING} q=(.+)&db=affili
RewriteRule ^index\.php$ http://www.blabla.eu/angebot/%1/affili.html [L,R=301]

bei dem hier krieg ich das hier zurück: http://www.blabla.eu/angebot/gfhhgf/affili.html?q=gfhhgf&db=affili

Das Teil nach den .html "?q=gfhhgf&db=affili" ist zu viel...

15.06.2010 17:32

15 Jörg

Häng mal hinten an die Ziel-URL noch ein Fragezeichen dran, damit hängst du den alten Query String ab

RewriteCond %{QUERY_STRING} q=(.+)&db=affili
RewriteRule ^index\.php$ http://www.blabla.eu/angebot/%1/affili.html? [L,R=301]

15.06.2010 17:40

16 StephanieG

hallo Jörg
- ich hoffe, ich werde nicht gleich geluncht, weil ich es mit sooo wenig Ahnung von der Materie wage, hier aufzutreten - die Verzweiflung treibt mich dazu:
2 selfmade- HPs (bei Strato) + Dreamweaver CS4, mittels Lern-DVD installierter Xampp-"home-Server" auf extra Festplatte - bin aber noch nicht vertraut mit .php, apache und mysql …
Ich würde gern meine alte HP (http://www.feldenkrais-kurse.de) mittels 301 ohne allzu viel Ranking-Verlust zu meiner neueren HP (http://www.hendrikoff.de) weiterleiten.
Leider entsprechen nicht alle Unterseiten der alten Seite den Unterseiten der neueren Seite.
Global habe ich die alte mittels .htaccess-Datei (
RedirectPermanent / http://www.hendrikoff.de
) schon auf die neue weitergeleitet, aber alle Unterseiten der alten HP führen ins Nirwana ;-)
- ich glaube, ich habe bei diesem Umzug bereits so ziemlich alles falsch gemacht, was man falsch machen kann… -
Zu allem Überfluss habe ich die neuere HP (www.hendrikoff.de) gerade auch noch mal erneuert (von html auf xhtml) und deshalb etliche Seiten doppelt - jeweils alle .htm einzeln mit Hilfe von:
<meta http-equiv="refresh" content="0; url=http://www.hendrikoff.de/Unterseite.html">
auf die entsprechende .html-Seite weitergeleitet - auch nicht ganz google-konform - oder? Aber es funktioniert wenigstens :-|
Ich würde keine Mühe scheuen, wenn ich nur wüsste, wie was wo stehen muss…
1000 Dank im Voraus für jeden Tipp, der mich einer Lösung näher bringt!!!
herzliche grüße
StephanieG

19.06.2010 18:59

17 Jörg

Zitat von StephanieG

Ich würde gern meine alte HP (http://www.feldenkrais-kurse.de) mittels 301 ohne allzu viel Ranking-Verlust zu meiner neueren HP (http://www.hendrikoff.de) weiterleiten.
Leider entsprechen nicht alle Unterseiten der alten Seite den Unterseiten der neueren Seite.
Global habe ich die alte mittels .htaccess-Datei (
RedirectPermanent / http://www.hendrikoff.de
) schon auf die neue weitergeleitet, aber alle Unterseiten der alten HP führen ins Nirwana ;-)

In der Ziel-URL fehlt noch ein abschließender Slash:

RedirectPermanent / http://www.hendrikoff.de/

Zu allem Überfluss habe ich die neuere HP (www.hendrikoff.de) gerade auch noch mal erneuert (von html auf xhtml) und deshalb etliche Seiten doppelt - jeweils alle .htm einzeln mit Hilfe von:
<meta http-equiv="refresh" content="0; url=http://www.hendrikoff.de/Unterseite.html">
auf die entsprechende .html-Seite weitergeleitet - auch nicht ganz google-konform - oder? Aber es funktioniert wenigstens :-|

Also eine Weiterleitung von *.htm nach *.html?

Ja, da wäre Modrewrite besser, da du dann mit einem Status Code 301 weiterleiten kannst. Wenn du Modrewrite zur Verfügung hast, kannst du die Weiterleitung mit folgendem Eintrag in der htaccess Datei versuchen:

RewriteEngine on
RewriteRule ^(.*)\.htm$ http://www.hendrikoff.de/$1.html [R=301]

19.06.2010 21:51 | geändert: 19.06.2010 21:52

18 StephanieG (Gast)

Vielen Dank für Ihre schnelle Antwort!!!!!
Während der WM und dann an einem Samstag Abend hätte ich wirklich nicht damit gerechnet! Danke!
Die Weiterleitung funktioiniert inzwischen "dem-Himmel-sei-Dank" für alle Seiten, die auf die neuere Index weiterleiten sollen:
RedirectPermanent /index.html http://www.hendrikoff.de/index.html
RedirectPermanent /Praxis-fuer-Feldenkrais-und-Physiotherapie/S-Hendrikoff.html http://www.hendrikoff.de/index.html
RedirectPermanent /Stephanie/S-Hendrikoff.html http://www.hendrikoff.de/index.html
. - mit abschließendem Slash - oder fehlt jetzt wieder einer jeweils hinter dem html?
Und verzeihen Sie BITTE die Frage, aber wie kann ich herausfinden, ob ich "Modrewrite" zur Verfügung habe?
herzliche Grüße
StephanieG

19.06.2010 22:10

19 Jörg

mit abschließendem Slash - oder fehlt jetzt wieder einer jeweils hinter dem html?

Nein - aber wenn man die Startseite einer Domain aufruft, endet die URL mit einem "/" - "http://example.com" ist eine unvollständige URL

wie kann ich herausfinden, ob ich "Modrewrite" zur Verfügung habe?

Z.B. durch Ausprobieren, ob die Modrewrite-Weiterleitung funktioniert.

19.06.2010 22:56 | geändert: 19.06.2010 22:58

20 StephanieG

Hey Jörg,
habe verstanden!
Also entweder: http://www.hendrikoff.de/
oder: http://www.hendrikoff.de/xy.html
Bei 2 Seiten habe ich deinen "Modrewrite-Text" bereits erfolgreich eingebaut!!!
Ich bin begeistert!!!
Falls du ein Baby hast und Berlin für dich in Reichweite, würde ich mich durch meine Fähigkeiten sehr gern erkenntlich zeigen!!!
Jetzt arbeite ich deinen "Modrewrite-Text" erst mal in all den anderen htm->html-Seiten ein und hoffe sehr, dich dabei nicht noch einmal bemühen zu wollen/müssen...
1000 Dank für deine Unterstützung!!!
Süsse Träume (23:28!!!)
StephanieG

19.06.2010 23:30