Was muss im Script rein um ein modrewrite zu erzeugen

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

Was muss im Script rein um ein modrewrite zu erzeugen

Beitragvon risc2000 » 09.11.2007 20:52

Hallo, ich bin absoluter mod_rewrite Neuling und habe ein Problem, bei dem ich nicht weiterkomme.

Ich habe ein PHP Script mit dem Namen index.php, daraus generiere ich dynamischen Content. Je nach Inhalt werden in meinem Script verschiedene Dokumente und Links erzeugt. Wenn ich z.B. eine Unterseite aufrufen möchte übergebe ich meinem Script simple Parameter. Zum Beispiel http://meine-domain.de/index.php?id=1 zeigt mit die Home Seite, http://meine-domain.de/index.php?id=2 Zeigt mir das Impressum, usw. Nun würde ich aber aus diesen ID's gerne "richtige" Links machen also http://meine-domain.de/home.html, http://meine-domain.de/impressum.html usw.

Jetzt gibt es ja die Möglichkeit dies "statisch" in einer .htaccess Datei zu realisieren. Ich möchte dies aber im Script tun. Dazu frage ich in der Datenbank zu meinem entprechenden Dokumenten id den freundlichen Link ab.

Beispiel:

id | Link
1 home.html
2 impressum.html

Das ist nicht das Problem, ich weis aber nicht wie ich die Links im Script umschreiben soll. Meine .htaccess sollte soweit in Ordnung sein:

.htaccess

Code: Alles auswählen
Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


Kann mir jemand helfen und mir einen Hinweis geben welche Befehle in das Script müssen um die Links umzuschreiben?

Beispiel des Scriptes:
Code: Alles auswählen
<?php

// Datenbank Abfrage, freundliche Links ermitteln ...

if ($_GET['id'] == 1 ) {
   echo "Home-Seite";

   // Link zum Impressum
   $freundlicher_link="impressum.html";
   echo '<a href="'.$_SERVER['PHP_SELF'].'?id=2';
}
if ($_GET['id'] == 2 ) {
   echo "Impressum-Seite";
   
   // Link zum Impressum
   $freundlicher_link="home.html";
   echo '<a href="'.$_SERVER['PHP_SELF'].'?id=1';
}
?>


Vielen Dank schonmal.
risc2000
.
.
 
Beiträge: 2
Registriert: 09.11.2007 20:03

Beitragvon Gumbo » 12.11.2007 16:07

Der Rewrite-Regel zufolge, steht der angefragte URL-Pfad in der „$_GET['q']“-Variable. Diesen musst du dann nur noch mithilfe der Datenbank auf die jeweilige ID abbilden. Das war’s.
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon risc2000 » 12.11.2007 16:22

Danke,

ich habe es inzwischen mit $_SERVER['QUERY_STRING'] hinbekommen.
risc2000
.
.
 
Beiträge: 2
Registriert: 09.11.2007 20:03


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

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

cron