Umleiten via htaccess

hogiebaer

New Member
Hallo an alle Linux/Apache Profis,

habe ein kleines Problem, mit dem ich nicht fertig werde.

Bin gerade dabei, unsere Anwendungen (Php & Perl) von unserem
Windows-Server auf unseren Linux Server zu ziehen.
Die php Anwendungen waren auch kein Problem, allerdings müssen die
Perl Scripte komplett umgeschrieben werden. Die Domains sind per DNS
allerdings schon auf unserem Linux System und die PHP Teile funktionieren
auch schon. Nun wollte ich bis zum fertigen Umschreiben die cgi-bin Anwendungen weiter
auf dem Windows Rechner laufen lassen (DNS-technisch haben wir da noch andere Domains laufen), weshalb ich auf dem Linux System
folgenden Eintrag in der htaccess eingetragen habe

RewriteEngine on

RewriteRule ^(.*)cgi-bin(.*) $ http://www.WindowsserverDomain.de/$1cgi-bin$2 [R=301,L]

Aber was soll ich sagen : Es geht nicht :mad:

Was ich herausgefunden habe, dass es an der Rule nicht liegen kann, denn wenn ich die Rule ändere auf z.B cgi-ban und auch diesen (natürlich nicht funktionierenden Link) eingebe, geht der tatsächlich wieder zurück auf den Win-Server. Muss also an dem Ausdruck cgi-bin liegen. Vermute einmal, dass der Apache schon weit vor dem Rewrite in der htaccess entscheidet, dass da nix umgeleitet wird.

Wer kann mir da helfen ??

Gruss
Holger
 
Abgesehen davon, daß ich eher
RedirectPermanent /cgi-bin/ http://www.WindowsserverDomain.de/cgi-bin/​
nehmen würde als den Performance-Killer mod_rewrite:

Wo legst Du die Regel denn an?
Direkt im cgi-bin?
Wenn Du sie in der Docroot / anlegst, dann wirkt sie nicht, falls "ScriptAlias /cgi-bin/" vorher abgezweigt wurde.
 
MOD: Bitte keine Fullquotes. Danke!

Wo sollte ich diese denn anlegen, wenn nicht im Docroot ?
Ein cgi-bin Verzeichnis existiert ja (noch) nicht auf dem Linux System ?
 
Last edited by a moderator:
...
habe nun auch den RedirectPermant probiert mit demselben Resultat. Irgendwie ist dieser alias "cgi-bin" so tief verwurzelt, dass man da nix machen kann. Oder weiss da noch jemand einen guten Tip ????

Danke
Holger
:(
 
Die eigentliche Erklärung ist diese:
falls "ScriptAlias /cgi-bin/" vorher abgezweigt wurde.
ScriptAlias geht vor Rewrite. Nimm diesen auf dem Server vorerst raus und der Rewrite/Redirect funktioniert.

In der heutigen Zeit ist es auch nicht mehr notwendig ein eigenes cgi-bin zu führen. Daher würde ich eher vorschlagen die Scripte gleich so zu schreiben, dass sie im normalen Web co-existieren können.

huschi.
 
Danke Huschi, das klingt natürlich sehr plausibel.

Werde ich umgehend probieren :)

Habs probiert und funktioniert, der Alias wurde tatsächlich in der default-server.conf gesetzt.

Gruss
Holger
 
Last edited by a moderator:
Hab ja gedacht, nun funtzt alles, aber da gibt es doch noch ein Problem.

Also, das mit der Umleitung zur neuen Domain funktioniert, aber die Formulardaten der App´s scheinen nicht mit weiter geleitet zu werden. Also, wenn ich dann am Ziel $_POST auswerte, ist nichts mehr da auf dem Zielserver. Gibt es da auch noch einen Trick ??

Gruss

Holger
 
Eine Möglichkeit wäre,den kompletten Redirect via PHP zu machen.

Also auf dem Linux-Server nimmt PHP die Argumente von $_POST auf und leitet zusammen mit den Argumenten auf den Windows-Server weiter.

Mit freundlichen Grüßen
Eddi
 
Back
Top