phpbar.de logo

Mailinglisten-Archive

[php] 1 Server, 1 Datei

[php] 1 Server, 1 Datei

Cyrill Schumacher webmasterbhs_(at)_bluewin.de
Sat, 6 Jan 2001 13:28:02 +0100


> ich habe auf meinem server EINE EINZIGE datei, die alle requests
abarbeiten
> soll (z.b. /seite.php). der benutzer gibt aber volle pfade ein (z.b.
> /stuff/mp3-tools.htm) und bekommt dann den dazugehörigen db-eintrag. so
wäre
> der plan.
> alle requests auf eine datei, das geht mit dem 404 error in der .htaccess.
> aber mit welcher variable kann ich herausfinden, welche seite ursprünglich
> aufgerufen wurde???

nach langem probieren, habe ich es auch rausgefunden :-)
in der htaccess steht

ErrorDocument 401 /~schumach/info.php3
ErrorDocument 402 /~schumach/info.php3
ErrorDocument 403 /~schumach/info.php3
ErrorDocument 404 /~schumach/info.php3
ErrorDocument 500 /~schumach/info.php3

phpinfo() liefert dir u.a. das bei einer anfrage

REDIRECT_ERROR_NOTES File does not exist: /home/www/htdocs/asdf/asdf.htm
REDIRECT_REQUEST_METHOD GET
REDIRECT_SCRIPT_URI http://srv/asdf/asdf.htm
REDIRECT_SCRIPT_URL /asdf/asdf.htm
REDIRECT_STATUS 404
REDIRECT_URL /asdf/asdf.htm
SCRIPT_FILENAME /home/www/htdocs/info.php3
SCRIPT_URI http://srv/asdf/asdf.htm
REQUEST_URI /asdf/asdf.htm

nur das ganze hat einen nachteil ... deine error_log wird richtig fett ...

wenn deine error_log nicht gefüllt werden soll, kannst du das
auch mit RewriteEngine tun in der .htaccess
das sieht dann so aus:

RewriteEngine On        # maschine einschalten
RewriteBase /~schumach/    # base path
RewriteRule ^(.+)\.(html|htm|txt)$ info.php3?file=$1.$2    # die regel

wobei du die info.php3 gegen deine eigene datei autauschen kannst
und file gegen deine eigene variable.
die rewrite rule gibt dir nur html oder htm oder txt documente
weiter aber keine gif, jpg, swf oder sonstiges, was ja auch
für deine idee quatsch wäre.

kiri




php::bar PHP Wiki   -   Listenarchive