Tutorials

Mod_Rewrite Tutorial

Einloggen
Benutzername:
Passwort:

Passwort vergessen?
Kostenlos
Anmelden
anzeigen
Mod_Rewrite


2361 - Sniper - 30.05.2006 16:53 Uhr - Version: 1 - - verlinken als BB-Code


Step 1:

Eigentlich passt das Thema mod_rewrite garnicht in die Kategorie PHP aber da ich 1. keinen eigenen Bereich für dieses Thema habe und 2. mod_rewrite in Verbindung mit PHP vorkommt kommt es trotzdem hier rein. Vorab sollte man wissen das alle hier gezeigten Codes in einer .htaccess Datei zu speichern sind!

Step 2:

Wir fangen erst einmal einfach an und täuschen den Client der eine index.html verlangt und leiten ihn auf die index.php um. Der User denkt also anhand der URL die er im Browser sieht er hätte eine normale .html File vor sich.

1
2
RewriteEngine on
RewriteRule index.html$ index.php


Natürlich müssen wir die Rewritefunktion aktivieren indem wir diese auf on setzen. Danach legen wir gleich los und schreiben einfach eine Weiterleitung von der index.html auf die index.php, ich denke das sollte klar sein.

Step 3:

Ein ähnliches Beispiel wie bei Step 2. Doch diesmal werden zusätzlich Parameter übergeben (bei uns die id).


1
2
RewriteEngine on
RewriteRule ^page_([0-9]+).html$ page.php?id=$1


Ab dem Zeitpunkt ab dem die URL eingegeben wird, untersucht der Server die URL nach page_ZAHL.html. Hat er diese ermittelt wird sie in einer Variable $1 gespeichert und nach page.php?id=$1 umgewandelt. Der Client bzw. User sieht vor sich aber immer noch die HTML Datei im Browser. Das ([0-9]+) bedeutet in userem Fall einfach nur das alle Zahlen zwischen 0 und 9 und aufwärts abgefragt werden können.

Step 4:

Hiermit könnt ihr einfach Zugriffe auf bestimmte Files sperren. Diese Files sind dann nurnoch über die unten angegebene URL / IP erreichbar sollte der Zugriff über eine andere Seite geschehen wird auf eine andere URL weitergeleitet.

1
2
3
4
5
6
7
8
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://deine-site.de.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.deine-site.de.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://deine-site:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.deine-site.de:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://127.0.0.1.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://127.0.0.1:80.*$ [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$ http://www.deine-page.de/error.html


Ersteinmal aktiviert ihr wieder die Rewritefunktion wie ihr in der ersten Zeile sehen könnt. Als nächstes wird in sämtlichen Abfragen gecheckt ob der Referer %{HTTP_REFERER} die angefragte Datei auch über die zugelassene URL oder IP anfordert ([NC] = kein Casesensitive). Sollte dies nicht der Fall sein (mit dem ! zu verneinen) dann gelangt er zur error.html! Dies gilt aber in dem Falle nur für .jpg und .gif Files, festgelegt über [Jj][Pp][Gg], dies ergibt bei uns .jpg oder .JPG und steht einfach für Groß- und Kleinschreibung. Das gleiche für .gif. Natürlich kann man das ganze erweitern oder auch für alle Files geltend machen indem man einfach die letzte Zeile durch folgendes ersetzt:

1
RewriteRule ^.* http://www.deine-page.de/error.html


oder ihr gebt einfach eine 403 Fehlermeldung aus über:

1
RewriteRule ^.* - [F]


Tutorial (c)2006 by www.snipers-page.de Bei fragen bitte melden.

Have Fun

Mitglieder-Kommentare


#5 von rQm
Was hat das ganze mit PHP zu tun? Das ist Apache-Config, nicht php oO
#4 von ntmb
Stimmt waerP, ich mach es mal in php rein Smily NR:8

mfg Eugen
Der freundliche Admin aus der Nachbarschaft
Lachecke.de - Dein täglicher Lacher im Internet
Listrank.de - Die ultimative Topliste nach Themen
#3 von waerP
das passt aber net zu html :|
#2 von Sniper
Smily NR:8

Liebe Grüße
Sniper

Bei Fragen oder Probleme PM me oder schreib in das Forum
#1 von ntmb
Jaja das hab ich auch am laufen Smily NR:7
Der freundliche Admin aus der Nachbarschaft
Lachecke.de - Dein täglicher Lacher im Internet
Listrank.de - Die ultimative Topliste nach Themen

Nur registrierte Mitglieder könnten einen Kommentar schreiben.

Melde dich doch ganz einfach an, es ist kostenlos. :-)