Seite 1 von 1

Redirect 301 oder RewriteRule?

Verfasst: 12.03.2009, 22:35
von no-seo
Ich hab' mal wieder eine Denkblokade:

https://www.domain.tld/tischtennis-db/g ... =Timo+Boll

So sieht das momentan aus. Statt dem "getplayervideolist.php" will ich nun zwei wichtige keywords reinsetzen (aaa-bbb.php). Sagen wir mal

https://www.domain.tld/tischtennis-db/a ... =Timo+Boll
soll es künftig sein.

Die getplayervideolist.php soll also generell zu aaa-bbb.php werden.

Jetzt kann ich
1) ein redirect 301 machen auf aaa-bbb.php (und die alte Datei einfach umbenennen), oder

2) Eine rewriteRule schreiben? modrewrite ist mir echt zu hoch. da verlier ich jede Geduld. Ich habe es probiert, nur dann funktionierten die Links mit Anker nicht mehr. Ala https://www.domain.tld/tischtennis-db/a ... #MeinAnker (das hat nicht mehr funktioniert)

---

Im nächsten Schritt will ich einige der URLs (z.B.) https://www.domain.tld/tischtennis-db/a ... r+Schlager

dann noch zu sagen wir mal:

https://www.domain.tld/tischtennis-db/xxx-yyy-videos machen. Da steht dann also genau fest, welche Parameter ($_GET) reinkommen. Und die Parameter setz ich dann einfach im PHP-Skipt.

---

Mich würde generell mal eure Meinung interessieren. Und wie der Käse funktioniert. modRewrite führt bei mir zu absoluten Denkblokaden, ich hasse das "Ding".

Verfasst:
von

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

Verfasst: 12.03.2009, 22:48
von no-seo
RewriteRule ^getplayervideolist\.php https://www.domain.tld/tischtennis-db/t ... videos.php [R=301,L]

funktioniert generell, aber so gehen die AnkerLinks nicht mehr, wenn ich das hier aufrufe:

https://www.domain.tld/tischtennis-db/t ... 7ugmw-el4I

Versteh ich nicht.

Edit: via POST wurde die alte getvideoplaerlist.php aufgerufen. Deswegen hat das mit den AnkerLinks nicht funktioniert.

Teil 1 ist also erledigt mit der rewriteRule dort oben und der Änderung im PHP Skript.

Re: Redirect 301 oder RewriteRule?

Verfasst: 13.03.2009, 11:55
von webpilot

Code: Alles auswählen

http://www.domain.tld/tischtennis-db/aaa-bbb.php?getplayervideolist.php?&WRNameID=schlagerwerner&td=herren&menu=herren&tischtennis-spieler=Werner+Schlager
Kannst du mal erklären was das alles für Parameter sind bzw. wie sich die ändern? z.B. "herren" kommt da zweimal vor, was genau wird benötigt, um den Spieler Werner Schlager aufzurufen? Reicht "WRNameID=schlagerwerner"?

Generell kannst du GET-Variablen einfach mit (.*) in Gruppen speichern und diese dann mittels $1, $2, etc. wieder ausgeben.

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 13.03.2009, 17:32
von no-seo
Die Parameter: WRNameID ist eigentlich ausschlaggebend, der Rest ist mittlerweile ohne Bedeutung. Und war teilweise für die Suchmaschine, ich dachte mir damals, das sei besser als nichts. Das Project ist inzwischen so undurchsichtig für mich geworden, dass ich selbst schwer durchblicke.

Wenn (&WRNameID=schlagerwerner) vorkommt, dann reicht das für die Auswertung, ja. Den Rest kann ich in PHP ($_GET['menu']=herren) "überschreiben", weils intern für die Weiterverarbeitung noch von Bedeutung ist.

Mein Ziel ist jetzt, dass einige der langen URLs mit Parametern ersetzt werden durch SEO-freundliche. Aber nur ein Paar, so dass dann aus dem schlagerwerner-URL dort oben folgend URL wird: https://www.domain.tld/tischtennis-db/videos-mit-name-x

und mit dieser URL eben die alles verarbeitende https://www.domain.tld/tischtennis-db/aaa-bbb.php aufgerufen wird.

Eine Notlösung also, um wenigstens ein Paar saubere URLs zu bekommen. Ich denke, das wird mir auf Dauer helfen.

---

Aber irgendwie denke ich, dass ich da wieder Mist bau (und etwas nicht verstanden habe). Eigentlich reicht das doch aus, wenn ich in die .htaccess (im Verzeichnis tischtennis-db\) schreibe:

RewriteRule /videos-mit-name-x aaa-bbb.php
RewriteRule /videos-mit-name-y aaa-bbb.php
RewriteRule /videos-mit-name-z aaa-bbb.php

Und dann verwende ich einfach die "/videos-mit-name-x", "/videos-mit-name-y" etc als Links auf meiner Website (und überschreibe im PHP Skript wie geplant die $_GET-Variablen, damit noch alles funktioniert wie vorher). Blöd ist dann nur, dass der gleiche Inhalt mit zwei URLs aufgrufen werden kann.

---

Ich schau mich jetzt nochnmal nach eine modrewrite Tutorial um, und geb mein bestes.

Verfasst: 13.03.2009, 18:38
von webpilot
Damit würde ich beginnen:

Code: Alles auswählen

RewriteRule ^tischtennis/videos/(.*)-(.*)$ tischtennis-db/getplayervideolist.php?&WRNameID=$1$2&td=herren&menu=herren [L]
Ich müsste das allerdings ebenfalls testen und rumprobieren, da ich kein mod_rewrite Spezi bin. Der Aufruf würde dann so erfolgen:

domain.tld/tischtennis/videos/boll-timo

Wenn es auch Frauen in der DB gibt, musst du das "herren" auch irgendwie übergeben und in die URL mit einbauen.

Kannst ja mal versuchen ob du damit was anfangen kannst.

Verfasst: 13.03.2009, 19:06
von no-seo
Danke erstmal für den Tipp.

In PHP die $_GET-Variablen umzuschreiben, ist Unsinn, soviel weiß ich jetzt. Ich befasse mich jetzt doch mal ernsthafter mit dem Thema (gibt einige gute Tutorials), und poste dann hier meine Lösung.


eben gelesen:
Mit mod_rewrite schießen Sie sich beim ersten Gebrauch entweder selbst in den Fuß und wollen es dann nie wieder verwenden, oder aber Sie lernen es wegen seiner Power lieben und wollen es Ihr ganzes weiteres Leben nicht mehr missen :-?

Verfasst: 13.03.2009, 19:36
von webpilot
Ich verstehe nur Bahnof. Von in PHP Variablen umschreiben redet niemand. Das was du oben versuchst hast, ist eine 301 Umleitung. Wolltest du das?

Verfasst: 13.03.2009, 20:31
von no-seo
Ich versteh so wenig von modrewrite, dass ich SEO-freundliche URLs erstellen wollte, und dann im Script die SEO-freundliche URL auswerte (weil ja die Parameter nicht mehr an der URL hängen). Aber das war natürlich Käse. Weil die Parameter intern (Durch modrewrite) an die prozessverarbeitende php-Datei weitergegeben werden $1 $2 etc.


^tischtennis/videos/(.*)-(.*)$ tischtennis-db/getplayervideolist.php?&WRNameID=$1$2&td=herren&menu=herren [L]
Nur leider gehts nicht so einfach, weil auch doppelnamen mit mehr Bindestrichen vorkommen, teilweise sind die Namen auch verdreht, ich muss selbst erstmal reinschauen, was ich da vor einem Jahr gepfuscht habe. Also das geht nicht, ABER: Ich habe das Prinzip schonmal halbwegs verstanden, Danke webpilot.


Das hier ist ein permanent redirect, oder?
^getplayervideolist\.php https://www.domain.tld/tischtennis-db/t ... videos.php [R=301,L]

getplayervideolist.php wollte ich weg haben, und stattdessen tischtennis-videos.php an der Stelle stehen haben, wegen der keywords.

Der Aufruf der getplayervideolist.php (jetzt tischtennis-videos.php) läßt sich momentan nicht komplett ersetzen, denke ich. Ich hatte da Probleme mit einigen POST-Aufrufen (form method=POST), die die getplayervideolist.php (jetzt tischtennis-videos.php) aufgerufen haben.

[der Mist macht mich fertig]

Ich taste mich jetzt mal langsam ran...Schritt 1: Neue Links für die Spieler.

Verfasst: 14.03.2009, 10:21
von webpilot
no-seo hat geschrieben:Das hier ist ein permanent redirect, oder?
^getplayervideolist\.php https://www.domain.tld/tischtennis-db/t ... videos.php [R=301,L]
[R=301] = Redirect 301
getplayervideolist.php wollte ich weg haben, und stattdessen tischtennis-videos.php an der Stelle stehen haben, wegen der keywords.

Code: Alles auswählen

RewriteRule tischtennis-videos.php(.*)$ getplayervideolist.php$1 [L]
Irgendwie sowas. Wie du das dann innerhalb deines CMS löst, ist wieder eine andere Geschichte.

Verfasst: 15.03.2009, 15:16
von no-seo
Ich hab es jetzt so gemacht in der htaccess:

getplayervideolist.php wird zu tischtennis-videos.php
Redirect 301 /tischtennis-db/getplayervideolist.php https://www.domain.tld/tischtennis-db/t ... videos.php

Für die unterschiedlichen Bereiche meiner Website gibt es neue URLs....
RewriteRule ^tischtennis-db/tischtennis-aufschlag-videos$ /tischtennis-db/tischtennis-videos.php?td=Timo-Boll-Tischtennis-Aufschlag-Videos&menu=herren [L]
RewriteRule ^tischtennis-db/tischtennis-videos$ /tischtennis-db/tischtennis-videos.php?td=tischtennis-videos-spezial&menu=herren [L]
RewriteRule ^tischtennis-db/tischtennis-technik-videos$ /tischtennis-db/tischtennis-videos.php?td=tischtennis-lernen-videos&menu=herren [L]
usw.

Für die verschiedenen Spieler gibt es neue URLs ...
RewriteRule ^tischtennis-db/tischtennis-videos-waldner-jan-ove$ /tischtennis-db/tischtennis-videos.php?&WRNameID=waldnerjan-ove&td=herren&menu=herren&tischtennis-spieler=Jan+Ove+Waldner [L]
RewriteRule ^tischtennis-db/tischtennis-videos-he-zhi-wen$ /tischtennis-db/tischtennis-videos.php?&WRNameID=hezhiwen&td=herren&menu=herren&tischtennis-spieler=Jan+Ove+Waldner [L]
RewriteRule ^tischtennis-db/tischtennis-videos-(.*)-(.*)$ /tischtennis-db/tischtennis-videos.php?&WRNameID=$1$2&td=herren&menu=herren&tischtennis-spieler=Timo+Boll [L]


Jetzt sind einige Inhalte unter den langen URLs und den neuen SEO-URLs vorhanden. Um das zu verhindern, wollte ich das hier schreiben, funktioniert aber nicht. Führt zu moved permanently 302.
#RewriteCond %{query_string} WRNameID=bolltimo
#RewriteRule ^(.*)$ https://domain.tld/tischtennis-db/tisch ... -timo-boll