mod_rewrite / Umsetzung mit PHP

newwarrior

Erfahrenes Mitglied
Hallo,

ich weiß das ich folgendes auch mit einem Apache Modul möglich machen kann, will aber wissen ob es auch mit PHP geht.
Und zwar gibt es die Möglichkeit auf meiner Seite Alben auszublenden, die ein User dann nur sehen kann, wenn er den Link hat.
Jetzt will ich ihm nicht so einen Link schicken:

Code:
http://meineseite.de/index.php?gallery=1333&album=123455

sondern am liebsten so:

Code:
http://meineseite.de/album/123455/

Meine Frage ist, kann ich sowas auch mit PHP umsetzen und wie sieht es in diesem Punkt dann auch mit der Sicherheit aus?

Danke
 
Nur mit PHP kannst du das nicht umsetzen, denn der Webserver sucht nunmal nach den angegebenen Ordnern und Dateien. Du wirst mod_rewrite dafür brauchen.

Wenn der Pfad album/123455 auf deinem Webserver nicht existiert und du mod_rewrite nicht verwendest, wird der Webserver folgerichtig einen Fehler 404 - Document not found an den Browser senden. Nur in Kombination mit mod_rewrite, das deine URL von /album/123455 auf die von dir zuerst notierte URL umschreibt (rewrite) kannst du den 404 vermeiden und eine eigentlich nicht existente Datei zu einer scheinbar existierenden werden lassen.

PHP hat selbst keine Möglichkeit, auf URLs zu reagieren, der Apache entscheidet, ob PHP überhaupt ausgeführt werden muss/soll/darf. Dafür braucht der Apache nun man eine Datei, die existiert, um den Datei-Typen (Mime-Type) dafür herauszufinden. Anhand der Kriterien in der httpd.conf (oder anderen .conf-Dateien im Apache-Kontext) wird dann entschieden, ob eine Datei ein PHP-Script ist oder nicht, und ob der PHP-Handler angewendet werden muss oder nicht.

Ich hoffe, das war verständlich und klar.
 
Sicher, mod_rewrite ist sehr flexibel. Du kannst sog. reguläre Ausdrücke (Regular Expressions oder kurz regex) verwenden, um die URL umzuschreiben. Hier mal ein Beispiel:

Code:
RewriteEngine On
RewriteRule ^/album/(.*) /index.php?gallery=1333&album=$1 [R=301,L]

Keine Garantie, dass das bei dir 1-zu-1 funktioniert. Am besten ist es, wenn du hier anfängst, dich einzulesen: http://www.modrewrite.de/
 
Zurück