Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Seiten im GIndex ersetzen per .htaccess nach MR

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Erodua
PostRank 2
PostRank 2
Beiträge: 34
Registriert: 28.01.2008, 18:46

Beitrag von Erodua » 28.01.2008, 19:56

So, nächste Frage :D

Ich will in einem laufenden Projekt nun mod-rewrite implementieren. Die Rules sind kein Prblem, schwierig wird es bei der Frage nach der Fehlervermeidung für die inidzierten Seiten.

Die Page hat zur Zeit knappe 10k Seiten. Wenn diese nun auf einmla neue Links bekommen werden die neuen Links ja als eigenständige Seiten (hoffentlich) indiziert. Damit entsteht nun aber die Gefahr des dublicate Contents... wie kann ich dem denn am Besten entgegen wirken?

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

To-Bi-As
PostRank 6
PostRank 6
Beiträge: 443
Registriert: 08.10.2006, 02:20

Beitrag von To-Bi-As » 29.01.2008, 04:17

Ganz einfach indem Du nicht nur die neunen URLs in die .htaccess einträgst, sondern auch die alten (per 301), oder das per PHP löst.

Das geht per MR oder eben pauschal per PHP. Ich selber mache es mit PHP schon über 4 Ecken, da es einige alte Versionen gibt.

Gruß, Ingo

Himura
PostRank 3
PostRank 3
Beiträge: 99
Registriert: 19.02.2007, 22:58
Wohnort: NRW

Beitrag von Himura » 29.01.2008, 07:29

bin auch gerade dabei...
das mit der zusätzlichen 301 Weiterleitung ist keine schlechte Idee, aber wie setze ich das um (hab ja noch Schwierigkeiten das Mod Rewrite überhaupt zu schnallen)?

Bei zB so einem Mod-Rewrite (ist fürs umblättern und sortieren):

Code: Alles auswählen

RewriteRule ^(.*)\.b([0-9]+)\.seite([0-9]+)\.(.*)\.(.*)\.(.*).html$ board.php?boardid=$2&page=$3&daysprune=$4&sortfield=$5&sortorder=$6
Meine neuen Board URLs sind alle schon im Index. Die alten aber auch noch fragt sich nur wie lange noch

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

Erodua
PostRank 2
PostRank 2
Beiträge: 34
Registriert: 28.01.2008, 18:46

Beitrag von Erodua » 29.01.2008, 07:34

Gibt das keine Schleife, wenn ich erst die alten raus-rewrite und dann aber auf genau diese wieder verweise? (habs noch nicht ausprobiert)

Himura
PostRank 3
PostRank 3
Beiträge: 99
Registriert: 19.02.2007, 22:58
Wohnort: NRW

Beitrag von Himura » 29.01.2008, 18:45

Hast Recht... scheint nicht zu gehen... wäre aber toll Google irgendwie mitzuteilen wo sich die neuen URIs befinden

Erodua
PostRank 2
PostRank 2
Beiträge: 34
Registriert: 28.01.2008, 18:46

Beitrag von Erodua » 29.01.2008, 19:22

Hmm... scheint doch eine Möglichkeit zu geben. Mit der %{THE_REQUEST} condition irgendwie, aber so ganz bin ihc hinter den Sinn dieser condi noch nicht gekommen und demnach klappts auch mit der Syntax leider noch nicht... aber das was ich jetzt so gelesen habe scheint das genau mein Fall zu sein.

Himura
PostRank 3
PostRank 3
Beiträge: 99
Registriert: 19.02.2007, 22:58
Wohnort: NRW

Beitrag von Himura » 29.01.2008, 19:54

mensch meier is das ein Thema...
Über %{THE_REQUEST} wird man nicht so auf die schnelle schlau. Wenn ich irgendwas schaff meld ich mich

To-Bi-As
PostRank 6
PostRank 6
Beiträge: 443
Registriert: 08.10.2006, 02:20

Beitrag von To-Bi-As » 30.01.2008, 02:55

@Himura
das mit der zusätzlichen 301 Weiterleitung ist keine schlechte Idee, aber wie setze ich das um (hab ja noch Schwierigkeiten das Mod Rewrite überhaupt zu schnallen)?
Das ist eine gute Frage, kenne Seine alte und neue Struktur ja nicht. Ich mache es wie gesagt zu 99% mit PHP da es mir per .htaccess auch zu umständlich / kompliziert ist.

Aber eine Endlosschleife gibt es nicht wenn das Flag [L] gesetzt wird. Es muss nur die Reihenfolge der Rules beachtet werden.

So leite ich z.B.

Code: Alles auswählen

RewriteRule ^/unterkuenfte/0/0/20295/2747.html$			/unterkuenfte/region_Bodensee/seite_1_1.html [L,R=301]
weiter und dann per

Code: Alles auswählen

RewriteRule ^/unterkuenfte/([^.]+)\.html$			/index.php?cat=unterkuenfte&query=$1 [L]
an die eigentliche Seite. Aber das ist jetzt nur eine Seite. Alles was mehr ist schicke ich an eine PHP Datei die das dann per Datenbank und Header 301 löst, da ein Zusammenhang von 20295 und Bodensee nur in der DB vorhanden ist, ebenso auch alle anderen Seiten.

Für Dein Beispiel mit der Blätterfunktion kannste Dir ja auch mal "QUERY_STRING" ansehen.
Bei mir werden ja im Beispiel nur bereits rewritete URL neu rewritet aber bezüglich der Parameter habe ich das auch so

Code: Alles auswählen

RewriteCond %{QUERY_STRING} ^cat=unterkuenfte&query=(.*)$
RewriteRule ^/index\.php.*$ /unterkuenfte/%1 [R=301,L]
Wichtig dabei nur, dass die Weiterleitung an die neue URL, nicht an die Datei erfolgt, sonst ist es eine Endlosschleife oder Seiten ohne Ende. Die eigentliche Datei übernimmt dann die echte andere Rule.

Gruß, Ingo

Erodua
PostRank 2
PostRank 2
Beiträge: 34
Registriert: 28.01.2008, 18:46

Beitrag von Erodua » 30.01.2008, 07:17

To-Bi-As hat geschrieben:Alles was mehr ist schicke ich an eine PHP Datei die das dann per Datenbank und Header 301 löst, da ein Zusammenhang von 20295 und Bodensee nur in der DB vorhanden ist, ebenso auch alle anderen Seiten.
Wie machst du das denn? Sobald du eine Kommunikation zum Server hast wird doch ein Header gesendet, womit dein 301 zu nem 302 wird. Oder wie ist da genau deine Vorgehensweise?

Himura
PostRank 3
PostRank 3
Beiträge: 99
Registriert: 19.02.2007, 22:58
Wohnort: NRW

Beitrag von Himura » 30.01.2008, 21:28

haha Jungs ich habs geschafft^^

Wie ich das gemacht hab?... ganz dämlich die board.php 1:1 kopiert und boards.php genannt.
Diese hab ich hochgeladen.

Dann hab ich den ModRewrite auf die boards.php gesetzt.
Diese wird jetzt Standardmäßig benutzt.
In der alten board.php hab ich dann eine php Weiterleitung reingeschrieben etwa so:

Code: Alles auswählen

header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://www.domain.de/$boardtitle.b$boardid.html"); 
header("Connection: close");
Jetzt werden die alten URLs nach der neuen URL umgeleitet die die boards.php benutzt.

jetzt ist die frage Clever oder Dämlich (hab ich was übersehen?)
Zuletzt geändert von Himura am 31.01.2008, 21:46, insgesamt 2-mal geändert.

Erodua
PostRank 2
PostRank 2
Beiträge: 34
Registriert: 28.01.2008, 18:46

Beitrag von Erodua » 30.01.2008, 22:09

Öhm... ich übersehe glaube ich gerade den Sinn dahinter :wink:

Himura
PostRank 3
PostRank 3
Beiträge: 99
Registriert: 19.02.2007, 22:58
Wohnort: NRW

Beitrag von Himura » 30.01.2008, 22:59

das die alten URLs die noch im G-Index sind per 301 an die neuen URLs geleitet werden (und auch hoffendlich den PR übergeben bei den wenigen die haben)

To-Bi-As
PostRank 6
PostRank 6
Beiträge: 443
Registriert: 08.10.2006, 02:20

Beitrag von To-Bi-As » 31.01.2008, 04:17

@Erodua
Wie machst du das denn? Sobald du eine Kommunikation zum Server hast wird doch ein Header gesendet, womit dein 301 zu nem 302 wird. Oder wie ist da genau deine Vorgehensweise?
Wer sagt das?? Wenn Du bei eine alte URL x.php aufrufst wird noch nix gesendet. Die Frage ist dann nur was x.php liefert. Im Regelfall 200 oder eben per Header ein 301.

Mal ganz dumm als Sprache ausgedrückt.

Es kommt eine Anfrage zu einer uralten Seite rein
Dann erfolgt per .htaccess ein Aufruf einer bestimmten php-Datei (Datei, nicht URL wie beim R=301)
Diese verbindet dann erst mal mit der DB
Und ließt die Daten anhand der alten Werte aus
Diese werden dann als eine neue URL zusammengefasst und weitergeleitet
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://www.neue_seite");

Da gibt es kein 302 ?!?! Oder wo soll der sein ?

Gruß, Ingo

Erodua
PostRank 2
PostRank 2
Beiträge: 34
Registriert: 28.01.2008, 18:46

Beitrag von Erodua » 31.01.2008, 07:03

Ah, ok, du hast also quasi noch eine datei dann zwischengeschaltet, die für das Design der URL zuständig ist und anschließend dann an die eigentliche Adresse weiterleitet?
Guter Ansatz

To-Bi-As
PostRank 6
PostRank 6
Beiträge: 443
Registriert: 08.10.2006, 02:20

Beitrag von To-Bi-As » 01.02.2008, 03:51

@Erodua
Ja, habe eine extra Datei x.php dazwischen weil mir das ganze per .htaccess zu undurchsichtig ist und es keinen direkten Zusammenhang zwischen alt und neu gibt ausser eben der DB (Wechsel von ID auf Namen).

Ich schicke alles was die alte Struktur hat an die Datei (bis dahin wird kein Header gesendet) und die erledigt per PHP dann den Rest, also Daten abfragen wenn es sein muss, neue URL zusammen bauen und weiterleiten oder Fehlerseite senden.

Allerdings geht es auch direkt mit der .htaccess wenn die Parameter schon richtig vorliegen.

also index.php?para1=Herren&para2=Hosen
kann direkt mit der Verwendung von "RewriteCond %{QUERY_STRING}" genutzt werden.

Ungetestet:

Code: Alles auswählen

RewriteCond %{QUERY_STRING} ^para1=(.*)&para2=(.*)$
RewriteRule ^/index\.php.*$ /%1/%2/ [R=301,L]
Das sollte dann etwas wie "/Herren/Hosen/" ergeben.

Waren das zuvor aber IDs und jetzt echte Wörter, so wie bei mir, dann mit extra Datei dazwischen.

Gruß, Ingo

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag