Seite 1 von 1

Was muss im Script rein um ein modrewrite zu erzeugen

Verfasst: 09.11.2007 20:52
von risc2000
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.

Verfasst: 12.11.2007 16:07
von Gumbo
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.

Verfasst: 12.11.2007 16:22
von risc2000
Danke,

ich habe es inzwischen mit $_SERVER['QUERY_STRING'] hinbekommen.