Apache Mod_Rewrite
Tom
- webserver
0 Edgar Ehritt0 Tom0 ChrisB0 Edgar Ehritt0 ChrisB0 Edgar Ehritt0 Tom
Hello,
gibt es eine Möglichkeit, mit dem Mod Rewrite die Weiterleitung auf eine Ressource davon abhängig zu machen, dass eine Datei mit dem Namen des Wertes eines mitgelieferten Cookies vohanden ist?
HTTP_COOKIE kann man abfragen.
Wenn nun eine Datei mit dem Namen, der per Cookie übermittelt wurde, vorhanden ist, soll der eigentlich Request ausgeführt werden, anderenfalls soll auf eine Fehlerseite umgeleitet werden.
Ein zusätliches Script soll nicht notwendig werden dafür.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo,
Hello,
gibt es eine Möglichkeit, mit dem Mod Rewrite die Weiterleitung auf eine Ressource davon abhängig zu machen, dass eine Datei mit dem Namen des Wertes eines mitgelieferten Cookies vohanden ist?
ja.
HTTP_COOKIE kann man abfragen.
Genau. ;)
Nicht nur RewriteRule hat die Möglichkeiten von back reference. Dies gilt auch für RewriteCond.
Wenn nun eine Datei mit dem Namen, der per Cookie übermittelt wurde, vorhanden ist, soll der eigentlich Request ausgeführt werden, anderenfalls soll auf eine Fehlerseite umgeleitet werden.
### ungetestet ###
RewriteEngine On
RewriteCond %{HTTP_COOKIE} (.*)
RewriteRule .* /verzeichnis/%1.html
%1 ist die erste back reference aus einer Rewrite-Kondition.
Gruß aus Berlin!
eddi
Hello eddi,
RewriteEngine On
RewriteCond %{HTTP_COOKIE} (.)
RewriteRule . /verzeichnis/%1.html
>
> %1 ist die erste back reference aus einer Rewrite-Kondition.
Muss ich doch gleich mal ausprobieren, wie weit ich damit komme.
Danke Dir.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>
Hi,
RewriteEngine On
RewriteCond %{HTTP_COOKIE} (.)
RewriteRule . /verzeichnis/%1.html
> >
> > %1 ist die erste back reference aus einer Rewrite-Kondition.
>
> Muss ich doch gleich mal ausprobieren, wie weit ich damit komme.
Damit hast du aber so wie das sehe noch gar nicht die Prüfung, ob die Datei mit dem zum Cookienamen korrespondierenden Namen, drin - nur die Weiterleitung auf das, wo der Cookiename "hin zeigt", unabhängig davon, ob diese Ressource dann in Form einer Datei existiert oder überhaupt.
Also wird wohl auch noch eine RewriteCond mit dem speziellen CondPattern -f erforderlich sein.
MfG ChrisB
--
Light travels faster than sound - that's why most people appear bright until you hear them speak.
Hallo ChrisB,
Also wird wohl auch noch eine RewriteCond mit dem speziellen CondPattern -f erforderlich sein.
Warum? Es soll jedenfalls 404 ausgegeben, wenn keine Datei vorhanden ist. Ob ich vorher nun Prüfe, oder nicht, beeinflusst das Endergebnis nicht.
Gruß aus Berlin!
eddi
Hi,
Warum? Es soll jedenfalls 404 ausgegeben, wenn keine Datei vorhanden ist. Ob ich vorher nun Prüfe, oder nicht, beeinflusst das Endergebnis nicht.
Es war lediglich die Rede davon, dass "auf eine Fehlerseite umgeleitet" werden sollte. Ob damit 404 gemeint ist, wissen wir nicht - nicht mal, ob es überhaupt einen HTTP-Fehler darstellen soll, oder ggf. nur eine Verletzung der Plausibilität von Daten, auf die ganz normal unter einem HTTP-Statuscode 200 hingewiesen wird ...
MfG ChrisB
Re:
"Wenn nun eine Datei mit dem Namen ... vorhanden ist, soll der eigentlich Request ausgeführt werden, anderenfalls soll auf eine Fehlerseite umgeleitet werden."
Warum? Es soll jedenfalls 404 ausgegeben, wenn keine Datei vorhanden ist. Ob ich vorher nun Prüfe, oder nicht, beeinflusst das Endergebnis nicht.
Ob damit 404 gemeint ist, wissen wir nicht - nicht mal, ob es überhaupt einen HTTP-Fehler darstellen soll, oder ggf. nur eine Verletzung der Plausibilität von Daten, auf die ganz normal unter einem HTTP-Statuscode 200 hingewiesen wird ...
Die Bedingungen, wann ein Request auszuführen ist, sind klar umrissen. Status 404 vollzieht sehr simpel die gesetzte Kondition im negativen Fall. Insbesondere aber beim debuggen durch automatisches log der Fehlschläge, liegt hier ein Vorteil. Prüfung "-f" macht all das von sich aus nicht.
Aber wenn es Dir wichtig ist, ändere ich mich eben dahingehend, dass jedenfalls eine Fehlerseite auszugeben ist.
Gruß aus Berlin!
eddi
Hello,
"Wenn nun eine Datei mit dem Namen ... vorhanden ist, soll der eigentlich Request ausgeführt werden, anderenfalls soll auf eine Fehlerseite umgeleitet werden."
Bitte um Entschuldigung, dass ich mich noch nicht wieder gemeldet habe. Ich muss das schöne Wetter nutzen und bin im Bau-Stress :-)
Der eigentliche Request auf die Ressource soll nur durchgeführt werden, wenn der mitgelieferte Cookie gültig ist, also in diesem Fall eine Datei existiert, die den Namen hat, der im Cookie als Wert übertragen wurde.
Existiert diese Kontrolldatei (z.B. eine Session-Datei) nicht mehr, soll der Request auf eine (beliebige) Fehlerseite, oder z.B. Access-Denied-Seite umgeleitet werden.
Es soll ausdrücklich mit Cookie und nicht mit Basic/Digest Auth gearbeitet werden.
Ich werde da leider auch die resliche Woche nicht weiterkommen, schaue mir die Tipps aber auf jeden Fall an...
Also Danke auf jeden Fall.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg