Seite 1 von 1

Weiterleitung v. dynmische auf statische URL bei Multidomain

Verfasst: 22.05.2008, 11:31
von Fenga
Hallo,

für einen Multidomainauftritt mit CMS (TYPO3!) benötige ich bitte einen generellen redirect mit htaccess(conf geht auch) von dynamischen URLS zu statischen.

vorweg, typo3 gibt die statischen Seiten bereits korrekt aus.
Nur war die statisches Ausgabe nicht von Anfang an aktiviert, so daß es nun in den Google SERPs teilweise Duplicate Content gibt. www.domaina.de/keyword.html ist auch noch unter www.domaina.de/index.php?id=4 www.domaina.de/index.php?id=keyword erreichbar.
Aus dem Index über die Webmaster Tools zbsp bekomme ich die Seiten ja nicht raus, da sie ja vorhanden sind und keinen 404 als Rückmeldung geben.

Nun suche ich eine generelleMöglichkeit per .htaccess immer alle Aufrufe von index.php?id=(id des keywords) und index.php?id=keyword automatisch mit 301 auf keyword.html umzuleiten. mod_rewrite ist aktiv und die .htaccess ebenfalls.

Verfasst:
von
Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Verfasst: 23.05.2008, 09:37
von Fenga
Praktischerweise sind die Aufrufe von index.php?id=(id des keywords) nur für eingeloggte Backend Benutzer aktiv. Nicht nach außen.

Somit brauche ich nur noch einen redirect für die seiten in den SERPs mit index.php?id=keyword.


um einen redirect aus index.php?id=keyword zu keyword.html zu erzeugen bin ich ein stück weitergekommen, brauche aber noch hilfe bitte.

mit dem code:

Code: Alles auswählen

RewriteCond %{THE_REQUEST} index\. [NC] 
RewriteRule ^(.*)index\.(.*) /$1 [L,NC,R=301] 
wird nun schon mal aus index.php?id=keyword jetzt nur noch ?id=keyword. index.php ist also schonmal weg. wie bekomme ich jetzt noch vorne ?id= weg und hinten ein .html dran?



die einfache me methode wäre pro "fehler" eine regel per hand zu schreiben:

Code: Alles auswählen

Redirect 301 /index.php?id=keyword http://www.domain.de/keyword.html



aber das sollte ja auch automatisch gehen oder?

Verfasst: 23.05.2008, 09:53
von Southmedia
Per mod_rewrite auf parametrisierte URLs zurückzugreifen ist nicht ganz so einfach, aber machbar. Ich versuchs fix an deinem Beispiel:

index.php?id=keyword -> keyword.html

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/index.php
RewriteCond %{QUERY_STRING} ^id=(.*)
RewriteRule index.php %1.html? [L,R=301]
Kurze Erläuterung:
Die erste RewriteCond sorgt dafür, dass das ganze nur bei Aufrufen auf die index.php überhaupt betrachtet wird, die zweite wenn ein Parameter id vorhanden ist. Die Rewriterule greift dann nochmal nur auf Aufrufe der index.php und baut dort der zweiten RewriteCond gefilterten String %1 wieder ein. Das ? am Ende sorgt dann noch dafür dass der Query-String verschwindet.

Bitte um Rückmeldung ob das so funktioniert.

Verfasst:
von

Verfasst: 23.05.2008, 12:46
von Fenga
hat fast geklappt. die erste zeile von dir hat zu einem 500 geführt. nach einem bißchen probieren habe ich es mit meiner RewriteCond kombiniert:

Code: Alles auswählen

RewriteCond %{THE_REQUEST} index\. [NC]
RewriteCond %{QUERY_STRING} ^id=(.*)
RewriteRule index.php %1.html? [L,R=301]
klappt prima global mit allen Domains, auch Backend/Frontend laufen.

vielen dank für deine hilfe.