Seite 1 von 1

Dynamische URLS per 301 weiterleiten

Verfasst: 10.09.2007, 15:56
von hallo_welt_:-)
Hallo,

ich suche seit heute mittag, finde aber keine passende Lösung.

Google hat leider meine Seiten mitsamt Session-ID indexiert, war mein Fehler :( Mittlerweile habe ich den Fehler mit der ID behoben, sauberer Head, die ID wird bei Google & Co. nicht mehr vergeben. Allerdings hat Google die Indexierung ja bereits vorgenommen, nun würde ich gerne die Seiten, nenne ich einfach mal

Code: Alles auswählen

http://www.example.com/mercedes.html?PHPSESSID=xxxxxx
via permanent redirect zu

Code: Alles auswählen

http://www.example.com/mercedes.html
wieder in eine gute Form bringen, schon allein um DC zu vermeiden.

Versucht habe ich via htaccess

Code: Alles auswählen

permanent redirect ^mercedes.html([.]*)$ http://www.example.com/mercedes.html
Was mache ich verkehrt?

Verfasst:
von

Verfasst: 10.09.2007, 16:10
von chris21
Du nutzt mod_alias, welches jedoch nicht mit Query_Strings arbeiten kann, ebensowenig mit Platzhaltern, letzteres geht nur, solange Du RedirectMatch bei mod_alias einsetzt.

Siehe: https://httpsd.apache.org/docs/1.3/mod/mod_alias.html

Folglich solltest Du mod_rewrite anstelle mod_alias nutzen, z.B. so:

Code: Alles auswählen

RewriteEngine on
RewriteRule ^mercedes.html?(.+)$ http://www.example.com/mercedes.html? [R=301,L]
Dieses - anfangs falsch wirkende - Fragezeichen am Ende der Ziel-URL verhindert, dass der QueryString übergeben wird - musst mal testen, ob Du es brauchst, oder ob es auch ohne klappt.

Verfasst: 10.09.2007, 16:20
von hallo_welt_:-)
Danke für die schnelle Antwort:

Problem ist, ich habe diese statische URL zuvor bereits mit mod_rewrite erzeugt, konkret bedeutet das:

Google hat die Seite so indexiert:

Code: Alles auswählen

http://www.example.com/mercedes.html?PHPSESSID=xxxxxx
Tatsächlich ist die Seite auch so zu erreichen:

Code: Alles auswählen

http://www.example.com/index.php?car=mercedes
So sollte sie indexiert werden:

Code: Alles auswählen

http://www.example.com/mercedes.html
Inhalt meiner htacess:

Code: Alles auswählen

RewriteEngine on
ReWriteRule mercedes.html index.php?car=mercedes
Kann ja jetzt schlecht noch eine Regel für eine bereits umgeformte URL angeben, oder gibt es dafür eine Möglichkeit?

Verfasst: 10.09.2007, 16:50
von chris21
Doch, dass ist möglich (bitte Reihenfolge beachten!):

Code: Alles auswählen

RewriteEngine on
RewriteCond %{QUERY_STRING} ^PHPSESSID=([0-9a-zA-Z]*)
RewriteRule ^mercedes.html?(.+) http://www.example.com/mercedes.html? [R=301]
RewriteRule ^mercedes.html$ index.php?car=mercedes
Die erste RewriteRule bewirkt einen sog. permanenten (durch [R=301]), externen Redirect, die zweite einen internen Redirect. D.h., als sichtbare URL bleibt dann mercedes.html bestehen, der ausgegebene Inhalt stammt von index.php?car=mercedes

Verfasst: 10.09.2007, 17:03
von hallo_welt_:-)
Naja klar stimmt der externe Redirect muss vorher ausgeführt werden, damit der interne noch zum tragen kommt... Vielen Dank dafür, dann kann ich ja gespannt sein ob meine Seite nun korrekt indiziert wird :-)

Verfasst: 10.09.2007, 19:20
von hallo_welt_:-)
Bin jetzt schon wieder länger am machen... Gibt es noch die Möglichkeit eine dritte Regel hinzuzufügen die die index.php?car=mercedes indexierung löscht und durch mercedes.html ersetzt? Vielen Dank für deine Geduld!

Verfasst: 10.09.2007, 23:33
von chris21
Hier gibt es zwei Möglichkeiten:

1. Du löst es auf der PHP-Ebene

2. Du nutzt auch hierfür mod_rewrite, musst dann aber auf einen Trick zurückgreifen:

Code: Alles auswählen

RewriteEngine on
RewriteCond %{QUERY_STRING} ^PHPSESSID=([0-9a-zA-Z]*)
RewriteRule ^mercedes.html?(.+) http://www.example.com/mercedes.html? [R=301]
RewriteCond %{QUERY_STRING} ^car=mercedes$
RewriteRule ^index.php?car=mercedes$ http://www.example.com/mercedes.html? [R=301]
RewriteRule ^mercedes.html$ index.php?car=mercedes&umgeschrieben=ja 
Der Trick besteht in der weiteren Variable (hier umgeschrieben=ja genannt), da Du sonst eine Endlosschleife produzieren würdest. Diese Variable ist ansonsten ein leeres unnützes Fake, wird also von der index.php nicht gebraucht.

von OHNE_WWW per permanent redirect weiterleiten auf WWW

Verfasst: 27.09.2007, 21:28
von bk1984bgl
also hier mein problem.

ich möchte per 301 permanent redirect von https://yourdomain.com auf https://www.yourdomain.com weiterleiten und das mit .htaccess.

kann mir da jemand weiter helfen?

vielen dank!