Das ist ja zum Kotzen, die ganzen Zeilenumbrüche bei den RewriteRules sind ja 
weg! Also beim Kutte Paste aufpassen!


--

Martin Allert

arago Institut für komplexes Datenmanagement AG

Eschersheimer Landstraße 526 - 532                         
60433 Frankfurt am Main
 
eMail: all...@arago.de - www: http://www.arago.de
Tel: +49-69-40568-403
Fax: +49-69-40568-111
--
Bankverbindung: Frankfurter Sparkasse, BLZ: 500 502 01, Kto.-Nr.: 79343
Vorstand: Hans-Christian Boos, Martin Friedrich
Vorsitzender des Aufsichtsrats: Dr. Bernhard Walther
Sitz: Kronberg im Taunus · HRB 5731 · Registergericht: Königstein i.Ts
Ust.Idnr. DE 178572359 · Steuernummer 2603 003 228 43435

Folgen Sie uns hier: automatisierungs-experten.de -- www.hcboos.net -- 
facebook.com/aragoAutomationExperts -- twitter.com/arago_AG -- 
xing.com/companies/aragoag -- linkedin.com/company/arago-ag -- 
slideshare.net/Arago.AG -- youtube.com/aragoag -- flickr.com/aragoag


-----Ursprüngliche Nachricht-----
Von: Martin Allert 
Gesendet: Dienstag, 10. April 2012 09:08
An: users-de@httpd.apache.org
Cc: Martin Allert
Betreff: AW: AW: AW: Bedingte Umleitung für bestimmte URLs Redirect

Hallo,

Du musst Dir folgendes überlegen:

- Überwiegt die Anzahl der Weiterleitungen? Oder
- Überwiegt die Anzahl der URL auf Webserver A?

Dann kommt noch dazu, ob du den Browser direkt umleiten willst und dafür sorgen 
willst, dass die Browser die neue Lokation merken. Zudem ist die Frage, ob Du 
Ausnahmen für Bilder (gifs, favicon.ico) und CSS definieren musst.

Im ersten Fall würde ich folgendes machen:
- Prüfe auf Webserver A mit entsprechenden RewriteCond auf die URL.
RewriteCond %{REQUEST_URI} "!^go.*$" [OR] RewriteCond %{REQUEST_URI} 
"!^stay-on-these-roads.*$"
RewriteRule "^(.*)$" http://www.WebserverB.com$1 [R,L] Damit bleiben alle URI 
in den Conditions auf dem lokalen Webserver A.
Die Conditions kannst Du jederzeit für jede URI untereinander platzieren, dabei 
aber nicht das [OR] vergessen! Wenn du das [OR] weglässt, werden die Conditions 
UND verknüpft.
Effekt: Alles was nicht in den Conditions drin steht, wird auf Webserver B 
umgeleitet.

Im zweiten Fall würde ich jeweils den Spieß herumdrehen und das "NOT" (="!) 
weglassen.
RewriteCond %{REQUEST_URI} "^(go.*)$" [OR] RewriteCond %{REQUEST_URI} 
"^(stay-on-these-roads.*)$"
RewriteRule "^(.*)$" http://www.WebserverB.com%1 [R,L]

Man bemerke den Unterschied bei der RewriteRule mit $1 im ersten Fall und %1 
und der Klammerung in der Condition. Hier passiert folgendes:
Effekt: Alles was in den Conditions drin steht, wird an den Original Platz auf 
Webserver auf Webserver B umgeleitet. %1 referenziert auf das erste geklammerte 
Objekt in einer matching Condition.

Du kannst beide Fälle kombinieren für bspw. CSS.
RewriteCond %{REQUEST_URI} "!^\.ico$" [OR] RewriteCond %{REQUEST_URI} 
"!^\.css$" [OR] RewriteCond %{REQUEST_URI} "^(go.*)$" [OR] RewriteCond 
%{REQUEST_URI} "^(stay-on-these-roads.*)$"
RewriteRule "^(.*)$" http://www.WebserverB.com%1 [R,L]

Dann noch der Fall mit dem permanenten Redirect. Statt [R,L] schreibst Du 
[R=301,L].
Falls Du bspw. nur die CSS und ICO vom Webserver B haben willst, weil Du dort 
die CSS und die favicon.ico schon fertig hast, kannst Du folgendes tun:
RewriteCond %{REQUEST_URI} "!^\.ico$" [OR] RewriteCond %{REQUEST_URI} "!^\.css$"
RewriteRule "^(.*)$" http://www.WebserverB.com%1 [R,L]

Bei massiven Umleitungslisten empfiehlt sich die Verwendung von RewriteMaps. 
Falls Du hier Hilfe brauchst, einfach melden. :)

Viel Erfolg!

--

Martin Allert

arago Institut für komplexes Datenmanagement AG

Eschersheimer Landstraße 526 - 532
60433 Frankfurt am Main
 
eMail: all...@arago.de - www: http://www.arago.de
Tel: +49-69-40568-403
Fax: +49-69-40568-111
--
Bankverbindung: Frankfurter Sparkasse, BLZ: 500 502 01, Kto.-Nr.: 79343
Vorstand: Hans-Christian Boos, Martin Friedrich Vorsitzender des Aufsichtsrats: 
Dr. Bernhard Walther
Sitz: Kronberg im Taunus · HRB 5731 · Registergericht: Königstein i.Ts 
Ust.Idnr. DE 178572359 · Steuernummer 2603 003 228 43435

Folgen Sie uns hier: automatisierungs-experten.de -- www.hcboos.net -- 
facebook.com/aragoAutomationExperts -- twitter.com/arago_AG -- 
xing.com/companies/aragoag -- linkedin.com/company/arago-ag -- 
slideshare.net/Arago.AG -- youtube.com/aragoag -- flickr.com/aragoag

-----Ursprüngliche Nachricht-----
Von: Frank Thommen [mailto:frank.thom...@drosera.ch]
Gesendet: Mittwoch, 4. April 2012 13:09
An: users-de@httpd.apache.org
Betreff: Re: AW: AW: Bedingte Umleitung für bestimmte URLs Redirect

> Das ist mir klar mit dem / = das was im DirectotyIndex steht. Aber ich will 
> Ausnahmen haben,dass /go/?action=Login nicht umgeleitet wird ? Wie wird das 
> erreicht? Gibt es eine Verneinung ähnlich RegEx bei Redirect?

soviel ich weiss nicht.  Meine Idee war, dass Du alles explizit umleitest, was 
umgeleitet werden soll und der Rest kriegt kein Redirect und bleibt wo es ist.  
Wenn Du "/index.html" umleitest, wird "/go/?action=Login" *nicht* umgeleitet.

Wenn Du komplexere Umleitungen willst, wuerde ich auch auf mod_rewrite 
verweisen.

frank


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-de-h...@httpd.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-de-h...@httpd.apache.org

Antwort per Email an