Seite 1 von 2
duplicate content > parameter per htaccess abschneiden
Verfasst: 03.11.2011, 08:30
von Ralfii
Hallo zusammen,
sitze nun schon seit Stunden vor meiner htaccess und bekomme folgendes Problem nicht gebacken:
habe folgenden duplicate content bei Google:
newsletter/newsletter.html?from=3&camp=0310
newsletter/newsletter.html?from=2&camp=0410
newsletter/newsletter.html?from=1&camp=0510 ...
und möchte nun alles auf die newsletter/newsletter.html per 301 umleiten
also die Parameter löschen
hab schon alles mögliche probiert u.A. dies:
RewriteCond %{THE_REQUEST} " (.*)/newsletter/newsletter.html?(.*) "
RewriteRule "" %1/newsletter/newsletter.html [R=301,L]
nur bekomme ich leider einen Fehler und keinen Redirect
Fehler: Umleitungsfehler Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.
die Condition zieht, aber die rewriterule passt wohl nicht
könnt Ihr mir weiterhelfen ?
danke und Grüße
Ralf
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: 03.11.2011, 20:34
von Melegrian
Probiere mal:
Code: Alles auswählen
RewriteCond %{QUERY_STRING} ^(.*)from(.*)$ [NC]
RewriteRule ^(.*)$ /$1? [L,R=301]
Verfasst: 03.11.2011, 20:53
von Ralfii
Hallo Melegrian,
erst mal vielen Dank für Deine Hilfe

)
Es funktioniert aber leider kommt ein Aber:
newsletter/newsletter.html?from=3&camp=0310
wird zu
newsletter/newsletter.html

)
aber eben auch zB:
testberichte.html?from=3&camp=0310
wird zu
testberichte.html
und das sollte so nicht sein ;-((
gibts ne Möglichkeit auch noch newsletter.html fest mit einzubauen ?
vielen Dank und Grüße
Ralf
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 03.11.2011, 21:20
von chris21
Code: Alles auswählen
RewriteCond %{QUERY_STRING} ^from(.*)$ [NC]
RewriteRule ^newsletter/newsletter.html$ /$1? [L,R=301]
Verfasst: 03.11.2011, 22:36
von Ralfii
Hallo chris21,
auch Dir erst mal dankeschön

)
https://localhost/testberichte.html?from=3&camp=0310
>ist perfekt passiert nichts
https://localhost/newsletter/newsletter ... &camp=0310
wirs nun leider aber ins Wurzelverzeichnis
https://localhost geleitet ...
hast Du noch ne Idee ?
danke
Ralf
Verfasst: 03.11.2011, 22:53
von Melegrian
chris21 hat mehr Ahnung und Erfahrung als ich, doch ich würde es dann mal so probieren:
Code: Alles auswählen
RewriteCond %{THE_REQUEST} ^(.*)newsletter/newsletter\.html$
RewriteCond %{QUERY_STRING} ^from(.*)$ [NC]
RewriteRule ^(.*)$ /$1? [L,R=301]
Ob es funktioniert, das weiß ich Dir aber leider nicht, bin noch beim Lernen.
Verfasst: 03.11.2011, 23:44
von Melegrian
Hatte noch einen kleinen Fehler eingebaut und am Ende einmal (.*) zuwenig. Funktioniert bei mir:
Code: Alles auswählen
RewriteEngine on
RewriteCond %{THE_REQUEST} ^(.*)demoshop/demo\.php(.*)$
RewriteCond %{QUERY_STRING} ^literatur(.*)$ [NC]
RewriteRule ^(.*)$ /$1? [L,R=301]
Bei der ersten wird der QueryString abgehängt und nur die demo.php geladen, die zweite bleibt hingegen wie sie ist.
Code: Alles auswählen
http://localhost/demoshop/demo.php?literatur=3
http://localhost/anderer/demo.php?literatur=2
Verfasst: 04.11.2011, 00:08
von chris21
War noch nen kleiner Fehler drin, so geht's:
Code: Alles auswählen
RewriteCond %{QUERY_STRING} ^from(.*)$ [NC]
RewriteRule ^newsletter/newsletter.html$ /newsletter/newsletter.html? [L,R=301]
Verfasst: 04.11.2011, 20:12
von Ralfii
Hallo Melegrian und chris21,
die Lösungen funktionieren perfekt - hab grad den Code von Chris getestet und schon online gestellt
Ganz vielen Dank für Eure so schnelle und kompetente Hilfe !
Ich verzweifle immer mit den reg-exp. Irgendwie sind meine Gehirnwindungen hier nicht kompatibel
Viele Grüße
Ralf
Verfasst: 05.11.2011, 17:21
von Ralfii
Hallo Melegrian und chris21,
jetzt hab ich dank Eurer Hilfe fast alles wunderbar umgeleitet.
Ein letztes Problem bekomm ich aber nicht in den Griff:
www.domain.de/?from=3&camp=0711
soll umgeleitet werden zu
www.domain.de
könnt Ihr mir da nochmal helden ?
danke
Ralf
Verfasst: 05.11.2011, 17:28
von chris21
Code: Alles auswählen
RewriteCond %{QUERY_STRING} ^from(.*)$ [NC]
RewriteCond %{REQUEST_URI} ^/(newsletter/newsletter\.html)?$
RewriteRule ^(.*)$ /$1? [L,R=301]
Verfasst: 05.11.2011, 17:53
von Ralfii
Hallo Chris,
unglaublich das funktioniert !
sag mal kannst Du mir die Wirkung von der zweiten Condition erklären ?
^/(newsletter/newsletter\.html)?$ was bewirkt das ?
wenn ich
RewriteCond %{QUERY_STRING} ^from(.*)$ [NC]
RewriteCond %{REQUEST_URI} ^/(dummy\.html)?$
RewriteRule ^(.*)$ /$1? [L,R=301]
funktioniert das ganze auch ...
localhost/kontakt/kontakt.html?from=3&camp=0711 es passiert nichts
localhost/?from=3&camp=0711 wird wie gewollt zu localhost
und wenn ich die zweite Cond. ganz rausnehme gehts zwar aber eben auch bei weiteren Kombinationen
localhost/kontakt/kontakt.html?from=3&camp=0711
wird dann auch
zu localhost/kontakt/kontakt.html

Verfasst: 05.11.2011, 18:37
von Melegrian
Eigentlich würde ich das jetzt als
from muss im Query vorkommen und
/(Muster) kann kein-oder-einmal? vorkommen
ansehen. Warum das dann bei Dir auch mit dummy\.html funktioniert, verstehe ich hingegen nicht. Nach meinem Verständnis sollte mit dummy\.html die newsletter/newsletter.html nicht mehr bereinigt werden. Zwischendurch mal den Cache gelöscht und versucht, ob es dann immer noch mit dummy\.html funktioniert? Falls ja, verstehe ich gerade etwas nicht.
Verfasst: 05.11.2011, 19:23
von chris21
@Melegrian:
ich musste die Nachricht von Rafii auch erst zweimal lesen, um zu verstehen, was der da mit dummy testet

Er testet negativ, um die Regel zu verstehen. Wenn er dummy einsetzt, dann wird nur die Startseite vom QS bereinigt (und die dummy Unterseite, falls es die gäbe), die kontakt... nicht.
@Ralfii:
Melegrian hat es schon gut erklärt:
Das Fragezeichen in der RewriteCond steht dafür, dass das zuvor in den Klammern genannte sog. pattern einmal oder keinmal auftreten kann. Dadurch erreiche ich dann sowohl die Startseite als auch die newsletter/newsletter.html.
Verfasst: 05.11.2011, 21:41
von Ralfii
genau die dummy gibt es nicht

hab nochmals mehrfach getestet und es funktioniert echt wunderbar
werds dann wohl mit der nicht existenten dummy.html online stellen
Ihr seid echt genial - ohne Euch wär ich darauf wohl nie gekommen !
1. Cond. versteh ich wunderbar (hoffe ich)
RewriteCond %{QUERY_STRING} ^from(.*)$ [NC]
^ = beginn des Strings
from ist der String
(.*) keines oder irgendwelche weitere Zeichen
$ Ende
[NC] egal ob groß oder klein
er nimmt eigentlich alles irgendwie "from" enthält egal ob groß oder klein
nun aber wirds für mich schwierig mit der 2. Condition
RewriteCond %{REQUEST_URI} ^/(dummy\.html)?$
{REQUEST_URI} nimmt sich die relative url
also zB: /index.html oder auch /kontakt/kontakt.html
/(dummy\.html)?
"Das Fragezeichen in der RewriteCond steht dafür, dass das zuvor in den Klammern genannte sog. pattern einmal oder keinmal auftreten kann. Dadurch erreiche ich dann sowohl die Startseite als auch die newsletter/newsletter.html."
>einmal oder keinmal
startseite >kommt keinmal vor
localhost/kontakt/kontakt.html?from=3&camp=0711 >kommt doch auch keinmal vor ...????
es funktioniert, aber genau diesen Teil versteht ich nicht
wenns Dir mit dem Eklären zuviel Arbeit ignorier mich einfach
Liebe Grüße
Ralf