Loopy Radio | Easy4Use | Topliste | eBesucher | Garten Bräunlein | Schreibwaren Wiebel | Camixo.de
Startseite Allgemeines Quads Programmierung Elektronik CarFakes Downloads Mein Passat 3B
Vorwort
Software

PushToTalk 0.x PushToTalk 1.x FiestaInfo 1.x WebRadioCheck 1.x
HowTo´s

PHP: ModRewrite Engine

Social Links

ModRewrite


ModRewrite ist eine Apache-Engine und ein bestandteil davon. Aber vorher sollte man erst einmal wissen, wozu man diese Engine braucht und ob sie wirklich von nöten ist. Dazu gehen wir erst einmal zu einem Bestandteil der PHP Programmierung.
Benötigt wird sie eigentlich nur wirklich dringend, wenn man Dynamische Webseiten Programmiert. Man kann sie zwar auch für Statische Webseiten nutzen, aber wirklich sinnvoll ist sie erst bei Dynamischen Webseiten.

Unterschied von Statischer und Dynamischer Webseite !!

Der Unterschied zwischen einer Statischen und einer Dynamischen Webseite ist schnell erklärt.
  • Eine Statische Webseite hat entsprechend ihres Umfangs und des Inhaltes entsprechend viele einzelne Seiten (HTML Dateien). Sie sind leicht zu erstellen, aber zur Pflege und Änderung dieser Seiten ist viel Zeit und ein entsprechend hoher Aufwand von nöten.
  • Eine Dynamische Webseite dagegen ist etwas aufwändiger in der Erstellung, jedoch wesentlich einfacher zu Pflegen und zu Ändern. Sie besteht zwar aus vielen kleinen PHP Dateinen, aber diese werden dynamisch zu einer Webseite zusammengesetzt.

Was ist die ModRewrite Engine und wozu brauchen wir sie?

Nehmen wir an, Sie programmieren eine Dynamische Webseite und wollen diverse Eingaben und Werte verarbeiten. Diese werden dann meist per URL ($_GET) oder im Hintergrund ($_POST) übergeben. ModRewrite ist sehr sinnvoll, wenn es um Werte geht, die perURL ($_GET) übergeben werden. Vielen haben dann schon oft folgende oder ähnliche Links gesehen:
  • http://www.domain.tld/index.php?page=article
  • http://www.domain.tld/index.php?page=article&kat=1&id=20
Dies ist dann schon etwas komplexer.
Leider sind solche URLs nicht wirklich Suchmaschinenfreundlich. Obwohl man als Ergebnis mehrere Seiten ausgespuckt bekommt, ist es jedoch laut URL immer ein und die selbe. Somit wird meist nur diese 1 Seite von den Suchmaschinen indexiert. Dies ist schlecht, wenn man doch als Ergebnis doch einige mehrere Seiten sieht. Tja, genau hier kann man ModRewrite ins Spiel bringen.
Suchmaschinen beachten diese Angaben hinter dieser PHP Datein nicht wirklich. Daher sind PHP-Urls nicht wirklich ratsam, wenn man seine Seite doch richtig und oft indexieren lassen möchte.
Freundlicher für Suchmaschinen und auch fürs Auge sind die URLs:
  • http://www.domain.tld/article
  • http://www.domain.tld/article_1_20
Die URLs sind zum einen wesentlich kürzer und zum anderen ergibt so jede PHP-Url eine eigene URL. Nehmen wir nun die "id=20" als anzahl der Artikel, hätte man als PHP-URL eine einzige Seite. Als kurze Suchemaschinenfreundliche URLs könnten somit 20 einzelne Seiten indexiert werden. Nur kann PHP ohne weitere Bearbeitung damit nichts anfangen, weil dann nach Dateien oder Verzeichnissen gesucht wird. Aber diese Datei oder das Verzeichniss existiert nicht und es wird ein Fehler ausgespuckt.
Hier kommt nun ModRewrite ins Spiel. Natürlich muss erst überprüft werden, ob der angemietete Webspace auch das ModRewrite unterstützt. Nicht jeder Webspace-Anbieter schaltet ModRewrite ein. Am einfachsten ist es, man erstellt eine kleine PHP-Datei. Diese sollte dann folgendes beinhalten:

PHP-Code:
<?php

phpinfo();

?>

Nach dem upload der Datei auf den Webspace und dem Aufruf im Browser, kann man nun sehen wie der Webserver konfiguriert ist. Wenn unter dem Punkt "Loaded Modules" ein Modul namens "mod_rewrite" steht, ist es für diesen Webserver aktiviert und kann benutzt werden. ModRewrite kann mit Regeln innerhalb der datei ".htaccess" im Hauptverzeichniss (Root-Directory) konfiguriert werden.

Was kann ModRewrite ?

Tja, was kann es !?
Im allgemeinen kann es rewriten, redirecten, loggen und auch schützen. Hier will ich vorerst einmal nur auf das Thema "URL umschreiben" eingehen.

ModRewrite Möglichkeit: URL umschreiben

Folgende Einträge in der .htaccess leitet alle Anfragen an den Webserver direkt an die index.php.
Die in der Regel enthaltene Zeichenkette "^([0-9a-zA-Z]+)$" weist den Server darauf hin, das nur Ziffern von 0-9, Kleinbuchstaben von a-z und Grossbuchstaben von A-Z enthalten sein dürfen. Das "+" dahinter sagt aus, das es 1 oder mehr zeichen sein dürfen.

.htaccess
RewriteEngine on
RewriteBase /
RewriteRule ^([0-9a-zA-Z]+)$ index.php?page=$1

Folgende Einträge in der .htaccess leitet alle Anfragen an den Webserver direkt an die index.php, ausser es handelt sich um eine existiernde Datei oder ein existierendes Verzeichniss.
Die in der Regel enthaltene Zeichenkette "^([0-9a-zA-Z]+)$" weist den Server darauf hin, das nur Ziffern von 0-9, Kleinbuchstaben von a-z und Grossbuchstaben von A-Z enthalten sein dürfen. Das "+" dahinter sagt aus, das es 1 oder mehr zeichen sein dürfen.

.htaccess
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z]+)$ index.php?page=$1

Folgende Einträge in der .htaccess leitet alle Anfragen an den Webserver direkt an die index.php, ausser es handelt sich um eine existiernde Datei oder ein existierendes Verzeichniss.
Die in der Regel enthaltene Zeichenkette "^(.*)$" weist den Server darauf hin, das alle Zeichen enthalten sein dürfen.

.htaccess
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?surl=$1 [L,NC,QSA]

ModRewrite Möglichkeit: duplicate Content (Doppelter Inhalt) verhindern

Es besteht die möglichkeit, Webseiten mit und ohne www am Anfang aufzurufen. Beide Aufrufe können die Webseite darstellen. Dies kann aber sehr schnell zu duplicate Content führen, was Suchmaschinen gar nicht gern haben und sehr schnell zu einer schlechteren Suchmaschinen Platziergung führen kann. Mit folgendem Code lässt sich duplicate Content verhindern.

.htaccess
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain.de$ [NC]
RewriteRule ^(.*) http://domain.de/$1 [L,R=301]

Dies bewirkt, das der angegebene Hostname in der im Browser befindlichen URL mit dem Hostnamen mit www verglichen wird. Fehlt das www, wird die Anfrage so umgeleitet, das der Hostname mit www in der URL-Zeile des Browsers steht. Somit wird dann ausschliesslich die Domain mit www indexiert und so duplicate Content verhindert.

Gibt es Beschreibungen zu den einzelnen Befehlen ?

Eine Beschreibung von ModRewrite folgt noch !!!

Weiterführende Links ...

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html#ToC4/
http://www.webmaster-toolkit.com/mod_rewrite-rewriterule-generator.shtml
http://www.modrewrite.de/



• Copyright/Written 2010 by Holger Kästel • Email: info@sinusline.net • Diese Seite ist rein Privat und dient keinem Kommerziellen Zweck. •
Dennoch gilt: Das Verwenden von Teilen dieser Seite, sei es auch nur auszugsweise, ist nur mit schriftlichem Einverständnis zulässig.


Kostenlos im Pushweb-Verzeichnis eintragen     pagerank.promotion-booster.de - Pagerank Anzeige ohne Toolbar   ZUUK.DE Kostenloser PageRank Service im Internet - Pagerank Anzeige ohne Toolbar     Pagerank Backlink - Pagerank Anzeige ohne Toolbar   Pagerank Backlink - Pagerank Anzeige ohne Toolbar   Domainbewertung - Domain www.sinusline.net bei domainwert24.de   Kostenlose Backlinks bei http://www.backlink-clever.de   onpageCheck.net: http://sinusline.net

-= Besucher =-
-= Statistiken =-