Apache, Lighttpd, nginx, Cherokee
bigapple
Posts: 9 Joined: 2003-12-17 18:08
Post
by bigapple » 2003-12-17 18:12
Also ich möchte folgendes machen:
wenn man
http://www.domain.at/berni/user3 eingibt sollte es mit htaccess auf /berni/h.php?username=user3 geöffnet werden!
Hier die einstellugen des VHOSTS:
Code: Select all
<VirtualHost xx.xxx.xxx.xx>
ServerName www.domain.at
ServerAlias www.domain.at *.domain.at domain.at
DocumentRoot /home/domain/public_html
ErrorLog /home/domain/logs/error_log
CustomLog /home/domain/logs/access_log common
ScriptAlias /cgi-bin/ /home/domain/cgi-bin
<Directory /home/domain/public_html>
Options Indexes IncludesNOEXEC FollowSymLinks
</Directory>
</VirtualHost>
und die htaccess(im berni verzeichnis):
Code: Select all
RewriteEngine On
RewriteRule berni/(.*)$ h.php?username=$1
ERROR-LOG:
[Fri Dec 12 15:55:22 2003] [error] [client xxxxxx] File does not exist: /home/domain/public_html/berni/user3
Was mache ich da falsch???
oxygen
Posts: 2138 Joined: 2002-12-15 00:10
Location: Bergheim
Post
by oxygen » 2003-12-17 18:29
Fehler im Ansatz. Du solltest lieber ein PHP Script nehmen, statt .htaccess und rewrite zu benutzen.
bigapple
Posts: 9 Joined: 2003-12-17 18:08
Post
by bigapple » 2003-12-21 16:14
...denke ich nicht!
Hier ist die ErrorLog
Code: Select all
- - [17/Dec/2003:20:20:35 +0100] [www.domain.at/sid#80a72d4][rid#81ae034/initial] (3) [per-dir /home/domain/public_html/berni/] strip per-dir prefix: /home/webtrabs/public_html/berni/user3 -> user3
- - [17/Dec/2003:20:20:35 +0100] [www.domain.at/sid#80a72d4][rid#81ae034/initial] (3) [per-dir /home/domain/public_html/berni/] applying pattern 'berni/(.*)$' to uri 'user3'
- - [17/Dec/2003:20:20:35 +0100] [www.domain.at/sid#80a72d4][rid#81ae034/initial] (1) [per-dir /home/domain/public_html/berni/] pass through /home/webtrabs/public_html/berni/user3
dodolin
Posts: 3840 Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe
Contact:
Post
by dodolin » 2003-12-21 16:56
RewriteRule berni/(.*)$ h.php?username=$1
Wenn du schon im Verzeichnis "berni" bist, dann sollte die Regel eher so aussehen:
RewriteRule (.*)$ h.php...
Ansonsten: Hast du den RewriteLogLevel wirklich auf den höchsten Wert gestellt? Wenn nicht, mach mal. Ich bin mir recht sicher, dass dann noch mehr Infos zu Tage kommen. Meine Vermutung ist, dass:
][rid#81ae034/initial] (3) [per-dir /home/domain/public_html/berni/] applying pattern 'berni/(.*)$' to uri 'user3'
das eben nicht matchen wird.
bigapple
Posts: 9 Joined: 2003-12-17 18:08
Post
by bigapple » 2003-12-21 17:08
....so jetzt bleibe ich schon mal im verzeichnis :)
jedoch wird der wert nicht übergeben!
RewriteLog Level ist auf 9
den code in einen editor kopieren....ist hier nicht schön dargestellt
Code: Select all
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (3) [per-dir /home/domain/public_html/berni/] strip per-dir prefix: /home/domain/public_html/berni/user3 -> user3
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (3) [per-dir /home/domain/public_html/berni/] applying pattern '(.*)$' to uri 'user3'
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (2) [per-dir /home/domain/public_html/berni/] rewrite user3 -> h.php?username=user3
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (3) split uri=h.php?username=user3 -> uri=h.php, args=username=user3
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (3) [per-dir /home/domain/public_html/berni/] add per-dir prefix: h.php -> /home/domain/public_html/berni/h.php
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (2) [per-dir /home/domain/public_html/berni/] trying to replace prefix /home/domain/public_html/berni/ with /berni/
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (5) strip matching prefix: /home/domain/public_html/berni/h.php -> h.php
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (4) add subst prefix: h.php -> /berni/h.php
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (1) [per-dir /home/domain/public_html/berni/] internal redirect with /berni/h.php [INTERNAL REDIRECT]
[www.domain.at/sid#80a72d4][rid#81b2e3c/initial/redir#1] (3) [per-dir /home/domain/public_html/berni/] strip per-dir prefix: /home/domain/public_html/berni/h.php -> h.php
[www.domain.at/sid#80a72d4][rid#81b2e3c/initial/redir#1] (3) [per-dir /home/domain/public_html/berni/] applying pattern '(.*)$' to uri 'h.php'
[www.domain.at/sid#80a72d4][rid#81b2e3c/initial/redir#1] (2) [per-dir /home/domain/public_html/berni/] rewrite h.php -> h.php?username=h.php
[www.domain.at/sid#80a72d4][rid#81b2e3c/initial/redir#1] (3) split uri=h.php?username=h.php -> uri=h.php, args=username=h.php
[www.domain.at/sid#80a72d4][rid#81b2e3c/initial/redir#1] (3) [per-dir /home/domain/public_html/berni/] add per-dir prefix: h.php -> /home/domain/public_html/berni/h.php
[www.domain.at/sid#80a72d4][rid#81b2e3c/initial/redir#1] (1) [per-dir /home/domain/public_html/berni/] initial URL equal rewritten URL: /home/domain/public_html/berni/h.php [IGNORING REWRITE]
dodolin
Posts: 3840 Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe
Contact:
Post
by dodolin » 2003-12-21 17:13
Jetzt hast ne Endlos-Schleife eingebaut, weil (.*) auch auf deine h.php matched und dieser auch ersetzt wird. ;) Musst du also ne Ausnahme definieren oder die h.php in ein anderes Verzeichnis legen.
bigapple
Posts: 9 Joined: 2003-12-17 18:08
Post
by bigapple » 2003-12-21 17:57
dodolin wrote: Endlos-Schleife
stimmt *g*
ich kann die datei nicht in einen anderen ordner geben... deshalb muss ich jetzt eine Bedingunge einfügen!
Code: Select all
RewriteEngine On
RewriteBase /berni/
RewriteCond %{REQUEST_URI} !^/berni/h.php
RewriteRule (.*)$ h.php?username=$1
also mit der log kann ich wieder nicht sehr viel anfangen ... die bedingung müsste aber stimmen..... siehe log ......jedoch werden keine parameter übergeben und die h.php nicht wirklich ausgegeben
Code: Select all
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (3) [per-dir /home/domain/public_html/berni/] strip per-dir prefix: /home/domain/public_html/berni/user3 -> user3
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (3) [per-dir /home/domain/public_html/berni/] applying pattern '(.*)$' to uri 'user3'
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (4) RewriteCond: input='/berni/user3' pattern='!^/berni/h.php' => matched
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (2) [per-dir /home/domain/public_html/berni/] rewrite user3 -> h.php?username=user3
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (3) split uri=h.php?username=user3 -> uri=h.php, args=username=user3
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (3) [per-dir /home/domain/public_html/berni/] add per-dir prefix: h.php -> /home/domain/public_html/berni/h.php
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (2) [per-dir /home/domain/public_html/berni/] trying to replace prefix /home/domain/public_html/berni/ with /berni/
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (5) strip matching prefix: /home/domain/public_html/berni/h.php -> h.php
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (4) add subst prefix: h.php -> /berni/h.php
[www.domain.at/sid#80a72d4][rid#81b1034/initial] (1) [per-dir /home/domain/public_html/berni/] internal redirect with /berni/h.php [INTERNAL REDIRECT]
[www.domain.at/sid#80a72d4][rid#81b2e44/initial/redir#1] (3) [per-dir /home/domain/public_html/berni/] strip per-dir prefix: /home/domain/public_html/berni/h.php -> h.php
[www.domain.at/sid#80a72d4][rid#81b2e44/initial/redir#1] (3) [per-dir /home/domain/public_html/berni/] applying pattern '(.*)$' to uri 'h.php'
[www.domain.at/sid#80a72d4][rid#81b2e44/initial/redir#1] (4) RewriteCond: input='/berni/h.php' pattern='!^/berni/h.php' => not-matched
[www.domain.at/sid#80a72d4][rid#81b2e44/initial/redir#1] (1) [per-dir /home/domain/public_html/berni/] pass through /home/domain/public_html/berni/h.php
dodolin
Posts: 3840 Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe
Contact:
Post
by dodolin » 2003-12-21 18:33
Momentan sagt mir der Log auch nicht viel... ;)
Du könntest mal versuchen, die h.php?user=... mit einer absoluten URL, als beginnend mit
http://www.domain.example/ ... aufzurufen, vielleicht ist das besser.
Ebenso solltest du mittels access.log und error.log mal prüfen, ob die h.php aufgerufen wird oder nicht und gegebenenfalls, welche HTTP Codes und Fehlermeldungen dabei entstehen.
bigapple
Posts: 9 Joined: 2003-12-17 18:08
Post
by bigapple » 2003-12-21 18:38
sorry ... habe was falsch geschildert!
geht so wie oben beschrieben!!!!
hatte eine falsche h.php datei upgeloadet
DANKE
dodolin
Posts: 3840 Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe
Contact:
Post
by dodolin » 2003-12-21 18:39
Cool. Freut mich. ;)
dodolin
Posts: 3840 Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe
Contact:
Post
by dodolin » 2003-12-22 11:28
Ich schätze mal, dass dies der Browser automatisch macht (Server-unabhängig). -> STIMMT DAS
Die Logfiles geben nichts dazu her?
Code: Select all
bash-2.05b$ lynx -dump -head http://www.domain.at/berni/user3/../../hack.php
HTTP/1.0 404 Not Found
Date: Mon, 22 Dec 2003 10:26:20 GMT
Server: Apache/1.3.26 (Unix) mod_fastcgi/2.2.12 PHP/4.2.2 PHP/3.0.18 mod_perl/1
.27 mod_ssl/2.8.10 OpenSSL/0.9.6c
Content-Type: text/html; charset=iso-8859-1
X-Cache: MISS from sklave.dodos.homelinux.net
Proxy-Connection: close
Sieht mir schon eher danach aus, als würden das manche Browser dann selbst so machen. Ansonsten müsste ja ein Redirect o.ä. kommen (Code 3xx) und nicht 404.