|
|
Ralfii

: 03.11.2011 : 10
|
| : 03.11.2011, 09:30 : duplicate content > parameter per htaccess abschneiden |
|
|
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 |
|
| Nach oben |
|
 |
Melegrian

: 30.01.2005 : 924 : Stendal
|
| : 03.11.2011, 21:34 : duplicate content > parameter per htaccess abschneiden |
|
|
Probiere mal:
| Code: |
RewriteCond %{QUERY_STRING} ^(.*)from(.*)$ [NC]
RewriteRule ^(.*)$ /$1? [L,R=301]
|
|
|
| Nach oben |
|
 |
Ralfii

: 03.11.2011 : 10
|
| : 03.11.2011, 21:53 : duplicate content > parameter per htaccess abschneiden |
|
|
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 |
|
| Nach oben |
|
 |
chris21

: 10.04.2005 : 2076
|
| : 03.11.2011, 22:20 : duplicate content > parameter per htaccess abschneiden |
|
|
| Code: |
RewriteCond %{QUERY_STRING} ^from(.*)$ [NC]
RewriteRule ^newsletter/newsletter.html$ /$1? [L,R=301]
|
Einfach mal abwarten und Tee trinken. Das wird scho'.
Auch ne schöne Seite: klick. |
|
| Nach oben |
|
 |
Ralfii

: 03.11.2011 : 10
|
|
| Nach oben |
|
 |
Melegrian

: 30.01.2005 : 924 : Stendal
|
| : 03.11.2011, 23:53 : duplicate content > parameter per htaccess abschneiden |
|
|
chris21 hat mehr Ahnung und Erfahrung als ich, doch ich würde es dann mal so probieren:
| Code: |
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. |
|
| Nach oben |
|
 |
Melegrian

: 30.01.2005 : 924 : Stendal
|
| : 04.11.2011, 00:44 : duplicate content > parameter per htaccess abschneiden |
|
|
Hatte noch einen kleinen Fehler eingebaut und am Ende einmal (.*) zuwenig. Funktioniert bei mir:
| Code: |
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: |
http://localhost/demoshop/demo.php?literatur=3
http://localhost/anderer/demo.php?literatur=2 |
|
|
| Nach oben |
|
 |
chris21

: 10.04.2005 : 2076
|
| : 04.11.2011, 01:08 : duplicate content > parameter per htaccess abschneiden |
|
|
War noch nen kleiner Fehler drin, so geht's:
| Code: |
RewriteCond %{QUERY_STRING} ^from(.*)$ [NC]
RewriteRule ^newsletter/newsletter.html$ /newsletter/newsletter.html? [L,R=301]
|
Einfach mal abwarten und Tee trinken. Das wird scho'.
Auch ne schöne Seite: klick. |
|
| Nach oben |
|
 |
Ralfii

: 03.11.2011 : 10
|
| : 04.11.2011, 21:12 : duplicate content > parameter per htaccess abschneiden |
|
|
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 |
|
| Nach oben |
|
 |
Ralfii

: 03.11.2011 : 10
|
| : 05.11.2011, 18:21 : duplicate content > parameter per htaccess abschneiden |
|
|
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 |
|
| Nach oben |
|
 |
chris21

: 10.04.2005 : 2076
|
| : 05.11.2011, 18:28 : duplicate content > parameter per htaccess abschneiden |
|
|
| Code: |
RewriteCond %{QUERY_STRING} ^from(.*)$ [NC]
RewriteCond %{REQUEST_URI} ^/(newsletter/newsletter\.html)?$
RewriteRule ^(.*)$ /$1? [L,R=301]
|
Einfach mal abwarten und Tee trinken. Das wird scho'.
Auch ne schöne Seite: klick. |
|
| Nach oben |
|
 |
Ralfii

: 03.11.2011 : 10
|
| : 05.11.2011, 18:53 : duplicate content > parameter per htaccess abschneiden |
|
|
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
 |
|
| Nach oben |
|
 |
Melegrian

: 30.01.2005 : 924 : Stendal
|
| : 05.11.2011, 19:37 : duplicate content > parameter per htaccess abschneiden |
|
|
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. |
|
| Nach oben |
|
 |
chris21

: 10.04.2005 : 2076
|
| : 05.11.2011, 20:23 : duplicate content > parameter per htaccess abschneiden |
|
|
@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.
Einfach mal abwarten und Tee trinken. Das wird scho'.
Auch ne schöne Seite: klick. |
|
| Nach oben |
|
 |
Ralfii

: 03.11.2011 : 10
|
| : 05.11.2011, 22:41 : duplicate content > parameter per htaccess abschneiden |
|
|
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 |
|
| Nach oben |
|
 |