Hallo, ich werkel jetzt seit ein paar Stunden an einer eigentlich simplen RewriteRule rum. Nachdem ich mich hier durch eine Menge Threads zum Thema gewühlt hab, will ich doch mal fragen:
Die Umleitung funktioniert, nur wird, wie Ihr oben seht, der aufgerufene (nicht exisitente) Pfad/URI nicht korrekt übergeben,
Das RewriteLog auf LogLevel 9 sieht wie folgt aus:
server_pfad ist für's Posting ersetzt, ist im Log der richtige Pfad zur DocRoot.
Warum rennt der erneut durch die Rule?
Code:
# Aufruf von http://localhost/a/b/c soll nach rewrite.php?uri=/a/b/c umgeschrieben werden RewriteEngine on RewriteBase / # RewriteRule ^(.*)$ rewrite.php?uri=$1 [NE] # -> uri=rewrite.php # RewriteRule ^(.*)$ rewrite.php?uri=$1 [last,qsappend,nosubreq] # -> uri=rewrite.php&uri=a/b/c # RewriteRule ^(.*)$ rewrite.php?uri=$1 [nosubreq,last,qsappend] # -> uri=rewrite.php&uri=a/b/c # RewriteRule ^(.*)$ rewrite.php?uri=$1 [last,nosubreq] # -> uri=rewrite.php RewriteRule ^(.*)$ rewrite.php?uri=$1 [nosubreq,last,qsappend]
Das RewriteLog auf LogLevel 9 sieht wie folgt aus:
Code:
127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#6763b8/initial] (3) [per-dir server_pfad/www/] add path-info postfix: server_pfad/www/a -> server_pfad/www/a/b/c 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#6763b8/initial] (3) [per-dir server_pfad/www/] strip per-dir prefix: server_pfad/www/a/b/c -> a/b/c 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#6763b8/initial] (3) [per-dir server_pfad/www/] applying pattern '^(.*)$' to uri 'a/b/c' 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#6763b8/initial] (2) [per-dir server_pfad/www/] rewrite a/b/c -> rewrite.php?uri=a/b/c 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#6763b8/initial] (3) split uri=rewrite.php?uri=a/b/c -> uri=rewrite.php, args=uri=a/b/c 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#6763b8/initial] (3) [per-dir server_pfad/www/] add per-dir prefix: rewrite.php -> server_pfad/www/rewrite.php 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#6763b8/initial] (2) [per-dir server_pfad/www/] trying to replace prefix server_pfad/www/ with / 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#6763b8/initial] (5) strip matching prefix: server_pfad/www/rewrite.php -> rewrite.php 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#6763b8/initial] (4) add subst prefix: rewrite.php -> /rewrite.php 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#6763b8/initial] (1) [per-dir server_pfad/www/] internal redirect with /rewrite.php [INTERNAL REDIRECT] 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#67b378/initial/redir#1] (3) [per-dir server_pfad/www/] strip per-dir prefix: server_pfad/www/rewrite.php -> rewrite.php 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#67b378/initial/redir#1] (3) [per-dir server_pfad/www/] applying pattern '^(.*)$' to uri 'rewrite.php' 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#67b378/initial/redir#1] (2) [per-dir server_pfad/www/] rewrite rewrite.php -> rewrite.php?uri=rewrite.php 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#67b378/initial/redir#1] (3) split uri=rewrite.php?uri=rewrite.php -> uri=rewrite.php, args=uri=rewrite.php&uri=a/b/c 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#67b378/initial/redir#1] (3) [per-dir server_pfad/www/] add per-dir prefix: rewrite.php -> server_pfad/www/rewrite.php 127.0.0.11 - - [25/Apr/2004:23:42:21 +0200] [127.0.0.11/sid#5d7fd8][rid#67b378/initial/redir#1] (1) [per-dir server_pfad/www/] initial URL equal rewritten URL: server_pfad/www/rewrite.php [IGNORING REWRITE]
Warum rennt der erneut durch die Rule?
Kommentar