Moin auch nochmal!
Folgender Sachverhalt:
- der URL lautet: /index.php?link=irgendwas
- der im Browser angezeigte URL soll sein: /irgendwas.htm
Das kann nicht funktionieren. Der Browser zeigt traditionell (mit Ausnahme von Frames) die angeforderte URL an. Wenn da also "/irgendwas.htm" stehen soll, muß auch "/irgendwas.htm" angefordert werden.
Das widerspricht aber Satz 1: Die URL ist dann eben _nicht_ "/index.php?link=irgendwas", sondern "/irgendwas.htm", und wird nur serverintern umgeschrieben - wovon der Browser nichts merken muß, wenn er nicht einen Redirect erhält.
Mit anderen Worten: Du kannst mit URL-Rewriting ein URL-Schema entwerfen, welches mit der tatsächlichen Anordnung der Daten auf der Festplatte und den Skripten absolut nichts zu tun hat. Dann müssen aber auch die Links entsprechend gestaltet sein, damit die richtige URL im Browser angezeigt wird.
Ich sitze gerade an sowas: Ein PHP-Skript includet HTML-Fragmente, welche so verteilt sind, wie es vollständige HTML-Seiten wären. Eine Rewriting-Regel setzt aber die URL um, damit das PHP-Skript zum Zuge kommt. Aus "/pfad/pfad/datei.html" wird intern "/index.pgp?/pfad/pfad/datei.html", und das PHP-Skript wertet dann den URL-Parameter aus. Zur Sicherheit wird durch eine Rewrite-Bedingung vorher geprüft, ob die HTML-Datei vorhanden ist - nur dann wird die Umschreibung gestartet. So kann niemand dem PHP-Skript URLs unterjubeln, die nicht existieren (das Skript prüft den übergebenen Parameter aber auch nochmal).
- Sven Rautenberg