mod_rewrite und BackRef's

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mod_rewrite und BackRef's

    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:

    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]
    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:
    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]
    server_pfad ist für's Posting ersetzt, ist im Log der richtige Pfad zur DocRoot.

    Warum rennt der erneut durch die Rule?

  • #2
    Re: mod_rewrite und BackRef's

    Original geschrieben von ThK
    Warum rennt der erneut durch die Rule?
    seltsam, er scheint die flags nosubreq und last zu ignorieren.
    warum, sehe ich auch nicht.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Eben das, und ich bin sicher, ich hab irgendwo einen Denkfehler drin. Zumal er das lokal auf meinem Apache mache und beim Hoster auch. Ich könnte zwar mit einer RewriteCond rangehen oder eben selber die SCRIPT_URI auswerten, aber das ist Flickwerk, was ich ja gerade der RewriteEngine aufbürden will. Na mal sehen, ob noch wer Ideen hat, sonst werd ich als nächstes mal die Newsgroups heimsuchen.

      Kommentar

      Lädt...
      X