Werner: mode_proxy bug Apache 2.4 ?

Hallo Ihr Spezialisten,

ich hoffe es kann mir jemand helfen.

Folgende Problemstellung

Apache 2.2
1 Domainaccount example1.com mit lediglich einer htaccess
Aufrufe von example1.com werden darin via mod_rewrite und mod_proxy auf example2.com weitergeleitet

RewriteEngine on
RewriteRule ^(.*) http://example2.com/$1 [P]

Test 1
bei Aufruf von http://example1.com/ wird verdeckt auf http://example2.com/ weitergeleitet
$1 ist dabei richtigerweise leer

Test 2
bei Aufruf von http://example1.com/test/index2.php wird verdeckt auf http://example2.com/test/index2.php weitergeleitet
$1 ist dabei /test/index2.php

Funktioniert also alles wie es soll!

Gleiche Konstellation, aber mit Apache 2.4 funktioniert nicht!

RewriteEngine on
RewriteRule ^(.*) http://example2.com/$1 [P]

bei Aufruf von http://example1.com/ wird verdeckt und warum auch immer auf http://example2.com/index.html weitergeleitet
$1 ist dabei falsch und hat den Wert index.html

Nach einigen Test, bin ich darauf gekommen wo der Apache 2.4 die index.html herzaubert,
nämlich aus der httpd conf. Er verwendet dort einfach den ersten Eintrag aus dem DirectoryIndex

Gebe ich dort testweise als ersten Eintrag blabla.html an,
macht er aus dem Aufruf von http://example1.com/ eine Weiterleitung auf http://example2.com/blabla.html
$1 ist dabei falsch und hat den Wert blabla.html

Damit funktionieren unter 2.4 die ganzen Weiterleitungen nicht mehr

Dass der Fehler in dem Modul mod_proxy liegen muss, ergibt die Tatsache das
mode_rewrite mit der Flag R, also:

RewriteRule ^(.*) http://example2.com/$1 [R]

das richtige Ergebnis liefert und $1 leer ist. Jedoch $1 mit Flag [P] der 1. Eintrag aus dem DirectoryIndex ist.

Kann mir bitte jemand helfen ?
ich google schon seit Tagen und finde keine Lösung.

Dankeschön
Werner

  1. Tach!

    Nach einigen Test, bin ich darauf gekommen wo der Apache 2.4 die index.html herzaubert,
    nämlich aus der httpd conf. Er verwendet dort einfach den ersten Eintrag aus dem DirectoryIndex

    Hast du dir die Apache-Dokumentation angeschaut, besonders die Unterschiede von DirectoryIndex zwischen Version 2.4 und 2.2? Und hast du dann mal das disabled probiert?

    dedlfix.

    1. Tach!

      Nach einigen Test, bin ich darauf gekommen wo der Apache 2.4 die index.html herzaubert,
      nämlich aus der httpd conf. Er verwendet dort einfach den ersten Eintrag aus dem DirectoryIndex

      Hast du dir die Apache-Dokumentation angeschaut, besonders die Unterschiede von DirectoryIndex zwischen Version 2.4 und 2.2? Und hast du dann mal das disabled probiert?

      dedlfix.

      Hallo dedlfix

      Klar habe ich das, aber ich brauche eine globale Lösung für die httpd conf
      Dabei würde ich mit DirectoryIndex disabled  aber generell den DirectoryIndex abschalten.
      Aber dein Vorschlag funktioniert, wenn man diesen in der htaccess vor dem Redirect setzten kann.

      Ich habe aber zu mindest für Apache 2.49 die Lösung gefunden:
      DirectoryCheckHandler On

      Deaktiviert den DirectoryIndex nur wenn wie bei mir z.B. mit mod_proxy und mod_rewrite weitergeleitet wird und kann somit global in der conf gesetzt werden.

      Aber danke für deine Hilfe
      Werner

  2. Aufrufe von example1.com werden darin via mod_rewrite und mod_proxy auf example2.com weitergeleitet

    Ganz ehrlich gesagt klingt das nicht nach "besonders sinnvoll" wenn beide Domains auf dem selben Server liegen und letztendlich die selben Inhalte haben sollen.

    Was spricht dagegen, in Deinem konkretem Fall "sauber" vorzugehen und bei der Konfiguration der virtuellen Hosts den zweiten Hostname als ServerAlias für den ersten einzutragen? Das würde nämlich einiges an Leistung sparen.

    Jörg Reinholz