mode_proxy bug Apache 2.4 ?
Werner
- programmiertechnik
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
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.
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 DirectoryIndexHast 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
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