mod rewrite und dynamische Links in php-Datei

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

mod rewrite und dynamische Links in php-Datei

Beitragvon Merbman » 28.03.2009 14:05

Hallo,

zum Thema mod rewrite stellt sich mir folgendes Problem.

Die Links in meiner php-Datei werden dynamisch erzeugt (aus Datenbank) und sehen folgender Maßen aus:

Code: Alles auswählen
---
<a href='index.php?m1=2&m2=12'>Link1</a>
---


m1 und m2 sind Variablen anhand derer ich meine Datenbankabfrage generiere.
Aus oben genanntem Link möchte ich gern eine Suchmaschinenfreundliche URL erzeugen.

Beispielsweise:
Code: Alles auswählen
domain.de/schoener_name.html

oder
Code: Alles auswählen
domain.de/schoener/name/


Mittels .htaccess-Datei kann ich ja relativ einfach folgende Zeile schreiben:

Code: Alles auswählen
---
RewriteRule schoener_name.html$ index.php?m1=2&m2=12 [L]
---


Jetzt stellen sich mir folgende Fragen.
1. Muss ich jeden dynamisch erzeugten Link (index.php?m1=2&m2=12) in meiner php-Datei von Hand umschreiben (schoener_name.html) oder gibt es andere Lösungen (Funktionen)?
2. Da die Links dynamisch erzeugt werden, kann ich ja nicht alle möglichen Links von Hand in die .htaccess-Datei schreiben. Wie automatisiere ich den Prozess, das aus dem schoener_name.html wieder die richtigen Variablen werden?
3. Gibt es die Möglichkeit den Seitentitel (<title>Seitentitel</titel>) auch als Namen für meine Seite (seitentitel.html) zu generieren?

Vielen Dank für eure Antworten!
Merbman
.
.
 
Beiträge: 4
Registriert: 24.03.2009 11:59

Beitragvon Weltall 7 » 29.03.2009 11:42

du kannst ein neues PHP-Skript schreiben, welches ein Array mit den per Datenbank regerierten URLs generiert und dann jede dieser Seiten aufruft und den Titel der Datei ins Array mit rein schreibt (z.B. als Schlüssel => Wert Paar oder als Array).

z.B.:

Code: Alles auswählen
<?php
$urls = array();
for ($i = 0, $i < Seitenanzahl, $i++) {
  $bdurl = hier und vorher deine db-abfragen
  $file = new DOMDocument();
  $file->loadHTMLFile($dburl);
  $schoeneurl = $file->getElementsByTagName('title')
  $schoeneurl = $schoeneurl->item(0);
  $schoeneurl = $schoeneurl->nodeValue;
  $schoeneurl = strtolower(str_replace(' ','_',$schoeneurl)).'.html';
  $urls[$dburl] = $schoeneurl;
}

?>


das funktioniert allerdings nur mit installiertem DOM.

dann brauchst du noch ein PHP-Skript, welches dir die .htaccess generiert.

du kannst auch ein PHP-Skript machen, welches einen umleitet, aber immer umzuleiten ist auch nicht gut.
Weltall 7
.
.
 
Beiträge: 36
Registriert: 24.03.2009 22:41


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron