Permanentlinks erzeugen und auswerten

Mit mod_rewrite hat man die Möglichkeit, Serveranfragen intern umzuleiten. Z.B. jemand ruft http://localhost/test/impressum/ auf und der Server gibt dies in Wirklichkeit an http://localhost/test/index.php weiter. In diesem Tutorial möchte ich euch erklären, wie diese Umschreibung mit .htaccess zu realisieren ist und wie dies mit einem PHP-Script ausgewertet werden kann.

1. GET – Methode
Eine sehr einfache Methode, kann man mit GET realisieren.
Eine GET-Variable übergibt man mit http://localhost/test/?page=impressum. Wir wollen daraus nun http://localhost/test/impressum machen.

Zuerst legen wir die .htaccess Datei an und füllen diese mit folgenden Inhalt:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([0-9a-zA-Z-_]+)$ index.php?page=$1 [L]
RewriteRule ^([0-9a-zA-Z-_]+)/$ index.php?page=$1 [L]
</IfModule>

Nun wird beim Aufruf der Seite http://localhost/test/impressum der Text: impressum angezeigt.

Es ist z.B. auch möglich http://localhost/test/impressum.html intern weiterzuleiten.

RewriteEngine On
RewriteRule ^([0-9a-zA-Z-_]+).html$ index.php?page=$1 [L]

2. REQUEST_FILENAME – Methode
Diese Methode bietet elegante Möglichkeiten. Sie wird übrigens auch von WordPress eingesetzt.
Damit ist es möglich z.B. http://localhost/test/artikel/unterseite/nochmehr/vielmehr auf http://localhost/test/ intern umzuleiten.

Zuerst legen wir die .htaccess Datei an und füllen diese mit folgenden Inhalt:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /test/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /test/index.php [L]
</IfModule>

Nun legen wir ein PHP-Script mit dem Namen index.php an und füllen es mit:

<?php
$req_uri = explode('/', $_SERVER['REQUEST_URI']);
$req_script = explode('/',$_SERVER['SCRIPT_NAME']);
for($i= 0;$i < sizeof($req_script);$i++){
if ($req_uri[$i]     == $req_script[$i]){
unset($req_uri[$i]);
}
}
$req_c = array_values($req_uri);
echo"".$req_c[0]." | ".$req_c[1]." | ".$req_c[2]." | ".$req_c[3]." | ".$req_c[4]." | ".$req_c[5]." | ".$req_c[6]." | ".$req_c[7]." | "; //wertet bis zu 8 Kommandos also http://localhost/1/2/3/4/5/6/7/8/
switch($req_c[0]){
case '1' :
echo 'Gültiges Kommando: '.$req_c[0];
break;
case '2' :
echo 'Gültiges Kommando: '.$req_c[0];
break;
default:
echo 'Das Kommando ist nicht bekannt.';
break;
}
?>

Nun könnt Ihr damit z.B. euer eigenes Content Management System aufbauen.


Robert Saupe

Ich bin Familienvater, Informatiker, Softwareentwickler, Administrator und seit dem 29.05.2010 auch in der Publikation tätig. Hier stehen Tutorials, News und wissenswertes über Technik in einem breiten Spektrum im Fokus. Das Hauptaugenmerk liegt dabei auf Administratoren, Entwicklern und auch Anwendern. Zu den Themen gehören u.a. Windows, Linux (Debian, Ubuntu), Mac, iOS, Android und WordPress im Software, Hardware und praxisnahem Bezug. Zudem fließen noch einige Projekte mit ein z.B. Sicherheitstools, Chat, Snippet, Texteditor, Adressbuch, Taschenrechner, Spiele und multimediale Bereiche.

Veröffentlicht in Entwickler, PHP, Server

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Select your Language

chaosdertechnik.de Webutation Blogverzeichnis - Blog Verzeichnis bloggerei.de
netcup Ökostrom 1&1 Partner

Werbung


Lizenz (CC BY-SA 3.0)

Rubriken

Archive