Seite 1 von 2
Mod Rewrite
Verfasst: 10.04.2007, 21:29
von Michael1967
Hallo,
mal eine Frage. Ich schreibe beispielsweise einen PHP-Links per Mod Rewrite in einen HTML-Link um.
Nun habe ich zusätzlich noch den Titel mit in den Link übernommen.
Beispiel:
link-222-testtitel.html
Nun lässt sich dieser Link aber auch so aufrufen -
link-222-.html
Was mache ich falsch?
Verfasst: 10.04.2007, 22:10
von net(t)worker
du müsstest im phpscript dann jeweils überprüfen ob der titel auch richtig übergeben wurde, wenn dieser dann falsch ist musste nen 301 auf die richtige url ausgeben...
Verfasst: 10.04.2007, 22:13
von Michael1967
Und wie macht man sowas? Hast du vielleicht ein Beispiel für mich oder eine Quelle zum nachlesen?
Das ist doch bestimmt wieder kompliziert *gg*
PHP ist doch plöt, wenn man nur Grundwissen besitzt *hihi*
Also der Titel steht immer in der Datenbank und wird im Script nur von den Sonderzeichen befreit.
Ich habe mir viele andere Seiten angeschaut, die auch den Titel in der URL stehen haben und da lassen sich die Links auch mit und ohne Titel aufrufen. Aber gesund ist das bestimmt nicht *gg*
Verfasst: 10.04.2007, 22:22
von net(t)worker
Michael1967 hat geschrieben:
Also der Titel steht immer in der Datenbank und wird im Script nur von den Sonderzeichen befreit.
na dann holste dir den dort als erstes raus, befreist ihn von Sonderzeichen und vergleichst ihn mit dem der in der url übergeben wurde... wenn passt dann ok, wenn nicht dann 301 auf richtige url...
is ne schöne kleine realitätsnahe Aufgabe um endlich die PHP-Kenntnisse ein wenig zu vertiefen... daher gibts nu auch kein Beispielscript...

Verfasst: 10.04.2007, 22:26
von Michael1967
Das ist aber gemein *heul*
Ich habe überhaupt keine Ahnung wie eine solche Weiterleitung und deren Abprüfung aufgebaut wird.
Gibt es da nicht irgendwo Infos? Und nach was muss ich suchen?
Verfasst: 10.04.2007, 22:36
von net(t)worker
Michael1967 hat geschrieben:Gibt es da nicht irgendwo Infos?
klar gibts da infos... sogar auf deutsch... ->
Infos

Verfasst: 10.04.2007, 22:38
von Michael1967
Bist du verrückt? Ein ganzes Buch muss ich lesen?
Ich meinte Infos mit Bezug auf mein Problem. Auf welcher Seite steht das denn? *freundlichfrag*
Verfasst: 10.04.2007, 22:42
von net(t)worker
na, überlege dir doch erstmal welche Schritte du da machen musst und wie die einzelnen schritte im einzelnen aussehen müssen, also was da passieren soll... und wenn du das zusammenhast schaun wer ma weiter...
Verfasst: 10.04.2007, 22:50
von Michael1967
1. Ich hole mir den Title aus der Datenbank (das kann ich schon ohne Hilfe)
2. Ich befreie den Titel von den Sonderzeichen (auch das kann ich ohne Hilfe)
3. Ich prüfe ob der Titel richtg übergeben wurde (keine Anhnung wie das geht)
4. Ich leite auf die richtige URL weiter, wenn Titel falsch (auch davon keine Ahnung hab)
Zu 3 und 4 finde ich auch bei Google nichts. Auf der oben genannten Seite muss ich bestimmt die Stecknadel im Heuhaufen suchen.
Verfasst: 10.04.2007, 23:04
von net(t)worker
ah... da kommen wir der sache ja schon näher....
also 3.
hierzu ist ja erstmal nötig, dass du im mod_rewrite den titel aus der url an php als parameter übergibst.... und dann einfach den aus 2 hiermit vergleichen...
und 4. frag google mal nach "php 301".....
und scho feddich... siehste is doch ganz simpel...
Verfasst: 11.04.2007, 00:06
von Michael1967
Ja und genau beim Vergleichen (den Codeaufbau) komme ich nicht weiter. Den Rest habe ich kapiert.
Danke!
Verfasst: 11.04.2007, 00:22
von net(t)worker
wie sieht deine rule fürs mod_rewrite aus?
Verfasst: 11.04.2007, 00:51
von Michael1967
So, wenn du das meinst *gg* (da Fehlt noch der Seitenname vor der ID)
Code: Alles auswählen
RewriteRule ^link-([0-9]+)-([[:punct:]/:\-\'(){}.&=_a-zA-Z0-9äöü\ ]*).html seitenname&id=$1&titel=$2 [L]
Verfasst: 11.04.2007, 01:10
von net(t)worker
jo... und nu kannste im PHP über $_GET['titel'] auf den Titel in der url zugreifen unbd mit der in punkt 2 erstellten vergleichen... wenn nicht passt, dass punkt 4 ausführen und feddich...
achja... die rule ist so nicht ganz korrekt... in einer url werden niemals (){} etc vorkommen... die müssten dort encodet werden....
Verfasst: 11.04.2007, 10:26
von Michael1967
Ich weis nicht wie ich vergleichen soll *gg*