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

artikel.php?id=14472 -> artikel/titel-des-eintrags-14472

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
ViperTK
PostRank 1
PostRank 1
Beiträge: 6
Registriert: 06.05.2010, 20:26

Beitrag von ViperTK » 11.05.2010, 17:54

Hab jetzt folgende RewriteRules erstellt.

Code: Alles auswählen

RewriteEngine on
RewriteRule ^([^/.]+)$ $1.php [L]
RewriteRule ^([^./]+)/([^/.]+)$ $1.php?site=$2 [L]
Damit kann ich jetzt beispielsweise
index.php?site=showdetails&id=1
in
/index/showdetails/1

Jedoch hätte ich jetzt dazu eine Frage, über die ich schon länger am senieren bin, jedoch immernoch nicht wirklich weiss wie dafür die RewriteRule aussieht bzw. wie man das ganze überhaupt handhabt.

Code: Alles auswählen

http://www.domain.de/artikel/14472/css-interview-mit-kai-kai-schafer-man-kann-nie-genug-fur-die-eps-vorbereitet-sein_css/
Wie bekomme ich eine solche RewriteRule hin?
Bzw. weiss ich ja, dass die dort zu sehende URL einfach nur unsichtbar für uns User weitergeleitet wird an beispielsweise an

Code: Alles auswählen

http://www.domain.de/artikel.php?id=14472
Was ich mir allerdings noch nicht erklären kann, wie ich aus der id 14472 dann den Title bekomme, den ich dann mit in die neue statische URL einfüge?
Was muss ich hierfür vll sogar an der artikel.php ändern, oder wie kann man das ganze überhaupt angehen und umsetzen?

Ich bedanke mich wieder einmal recht herzlich im Voraus bei allen die evtl. einen Tip für mich bereit haben.

Liebe Grüße
ViperTK

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

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 11.05.2010, 20:26

ViperTK hat geschrieben:

Code: Alles auswählen

http://www.domain.de/artikel/14472/css-interview-mit-kai-kai-schafer-man-kann-nie-genug-fur-die-eps-vorbereitet-sein_css/
[…]
Was ich mir allerdings noch nicht erklären kann, wie ich aus der id 14472 dann den Titel bekomme, den ich dann mit in die neue statische URL einfüge?
Gar nicht – wenn man den Blick auf die RewriteRule-Zeile beschränkt. Das Muster für so eine URL wäre schlichtweg ^/artikel/([0-9]+)/ , d.h. der Pfad soll mit dem Text /artikel/ beginnen, dann folgen Ziffern, die kopiert werden (runde Klammern), und dann: ein offenes Ende. Alternativ könnte man auch ^/artikel/([0-9]+)/[^/]+/$ benutzen, statt des offenen Endes verlangt das Muster eine Zeichenkette ohne Schrägstrich ([^/]+) und dann am Ende einen Schrägstrich.

Der Punkt ist, dass mod_rewrite zur Arbeit mit Mustern gedacht ist, die auf viele Pfade passen. In deiner Zeile RewriteRule ^([^./]+)/([^/.]+)$ $1.php?site=$2 benutzt du doch auch keine festen Vorgaben, sonst wäre es ja RewriteRule ^([^./]+)/showdetails$ $1.php?site=$2 gewesen.
Genauso ist es beim Umgang mit Titeln in der URL auch.

Den eigentlichen Abgleich, also die Frage, ob der Titel aus der URL auch zum Titel des Artikels passt, musst du in dem Skript machen, dass die URLs weiterverarbeitet, denn nur dieses hat Zugriff auf die Artikeldatenbank.

ViperTK
PostRank 1
PostRank 1
Beiträge: 6
Registriert: 06.05.2010, 20:26

Beitrag von ViperTK » 11.05.2010, 20:57

Vielen Dank für deinen Post =).

Okay, also muss ich nun alle URL's selbst umschreiben? Versteh nur nicht wie ich das machen soll. Im Script muss ich dann also überall wo ich früher z.B. index.php?site=showdetails&id=3 hatte direkt dort beim dynamischen erstellen der URL's, meine Datenbankanfrage erweitern, so dass ich dann auch an den titel komme und nicht nur an die id, dass ich dann sowas machen kann wie: index.php?site=showdetails&id=3&title=dies-ist-der-title ?

Ist das korrekt bis hierhin?

Desweiteren brauche ich doch dann sicher noch eine zusätzliche Funktion die mir aus dem Original-Titel eine URL-freundliche Version macht.
Wäre meine folgende Lösung soweit komplett?

Code: Alles auswählen

function title_to_url($title) {
$umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/","/&/","/
/","/\?/","/\!/","/\./","/\(/","/\)/","/\,/","/\//","/%/","/#/","/\"/","/:/
","/;/");
$replace = Array("ae" ,"oe" ,"ue" ,"Ae" ,"Oe" ,"Ue" ,"ss" ,"und", "-"
,"" ,"" ,"-" ,"" ,"" ,"" ,"-" ,"" ,"" ,"" ,"","");
$title = strtolower(preg_replace($umlaute,$replace,$title));
return $title;
}
Vielen Dank.

Liebe Grüße
ViperTK