VFLFan: Rewrite-Frage

Hallo,
mit untenstehender .htaccess wollte ich folgendes erreichen:
Aufruf www.foo.com/        wird umgeleitet zu www.bar.com/foo
Aufruf www.foo.com/a12345  wird umgeleitet zu www.bar.com/foo?a12345
Der zweite Aufruf wird korrekt umgeleitet, beim ersten fehlt allerdings das foo!
Woran liegt dies?
Mit dem redirekt-log komme ich leider auch nicht zurecht.

.htaccess:

RewriteEngine on
 RewriteCond %{HTTP_HOST}    ^(www)?.(.*).de                    [NC]

RewriteRule ^(.+)$     http://www.beinahe-gratis.de/%2?$1   [L]
 RewriteRule ^$     http://www.beinahe-gratis.de/%2   [L]

Log-Auszüge:

Aufruf www.foo.com/a12345

[www.foo.com/sid#1032770][rid#1109dc8/initial] (3) strip per-dir prefix: E:/homepages/foo/a12345 -> a12345
[www.foo.com/sid#1032770][rid#1109dc8/initial] (3) applying pattern '^(.+)$' to uri 'a12345'
[www.foo.com/sid#1032770][rid#1109dc8/initial] (4) RewriteCond: input='www.foo.com' pattern='^(www)?.(.*).de' [NC] => matched
[www.foo.com/sid#1032770][rid#1109dc8/initial] (2) rewrite 'a12345' -> 'http://www.bar.com/foo?a12345'
[www.foo.com/sid#1032770][rid#1109dc8/initial] (3) split uri=http://www.bar.com/foo?a12345 -> uri=http://www.bar.com/foo, args=a12345
[www.foo.com/sid#1032770][rid#1109dc8/initial] (2) implicitly forcing redirect (rc=302) with http://www.bar.com/foo
[www.foo.com/sid#1032770][rid#1109dc8/initial] (1) escaping http://www.bar.com/foo for redirect
[www.foo.com/sid#1032770][rid#1109dc8/initial] (1) redirect to http://www.bar.com/foo?a12345 [REDIRECT/302]

Aufruf www.foo.com

[www.foo.com/sid#1032770][rid#1109e38/initial] (3) strip per-dir prefix: E:/homepages/foo/ ->
[www.foo.com/sid#1032770][rid#1109e38/initial] (3) applying pattern '^(.+)$' to uri ''
[www.foo.com/sid#1032770][rid#1109e38/initial] (3) strip per-dir prefix: E:/homepages/foo/ ->
[www.foo.com/sid#1032770][rid#1109e38/initial] (3) applying pattern '^$' to uri ''
[www.foo.com/sid#1032770][rid#1109e38/initial] (2) rewrite '' -> 'http://www.bar.com/'
[www.foo.com/sid#1032770][rid#1109e38/initial] (2) implicitly forcing redirect (rc=302) with http://www.bar.com/
[www.foo.com/sid#1032770][rid#1109e38/initial] (1) escaping http://www.bar.com/ for redirect
[www.foo.com/sid#1032770][rid#1109e38/initial] (1) redirect to http://www.bar.com/ [REDIRECT/302]
[www.bar.com/sid#fca6a0][rid#1122fb0/initial] (3) [perdir E:/homepages/bar/] strip per-dir prefix: E:/homepages/bar/ ->

  1. RewriteRule ^(.+)$     http://www.beinahe-gratis.de/%2?$1   [L]
    RewriteRule ^$     http://www.beinahe-gratis.de/%2   [L]

    Hier muss es natürlich statt beinahe-gratis.de heissen foo.com!

  2. Hi,

    Der zweite Aufruf wird korrekt umgeleitet, beim ersten fehlt allerdings das foo!
    Woran liegt dies?

    Daran, dass die RewriteCond gar nicht ausgewertet wird -

    Mit dem redirekt-log komme ich leider auch nicht zurecht.

    • was man in diesem aber auch recht einfach erkennen kann, wenn man beide Faelle vergleicht.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hallo ChrisB,
      gilt die rewriteCond nicht für alle folgenden Rewrite-Statements?
      Gruß
      VFLFan

      1. gilt die rewriteCond nicht für alle folgenden Rewrite-Statements?

        Nein, da die Reihenfolge des Processing, auch im Logauszug zu sehen, immer Rule-pattern --> Conditions dieser Regel (sprich die unmittelbar darüber) --> Rule-Substitution ist.