Frage

Ich ziehe meine Haare heraus, was ein unglaublich einfaches Problem sein sollte. Wir laufen WebSphere IHS (Apache) durch eine F5 BigIP. BigIP tut das https-Übersetzung für uns. Unsere url (für das Web verändert, nicht gültig) ist https://superniftyserver.com/lawson/portal .

Wenn jemand Typen in nur, dass ohne den Schrägstrich nach dem Portal, Apache „Portal“ übernehmen eine Datei und kein Verzeichnis zu sein. Wenn Apache findet heraus, was es ist, sendet er die 301 Permanent Redirect. Aber da Apache nur http kennt, sendet er die URL als http://superniftyserver.com/lawson/portal/, die dann schafft Probleme.

So habe ich versucht, einen Server-Ebene httpd.conf Änderung für mod_rewrite, dies ist einer der Dutzende von Kombinationen, die ich ausprobiert habe.

RewriteEngine auf RewriteRule ^ / lawson / portal (. *) / Lawson / portal / $ 1

Ich habe auch versucht, RewriteRule ^ / lawson / portal $ / lawson / portal /

Unter vielen anderen Dingen ... Was bin ich?

War es hilfreich?

Lösung

Wenn Sie keine Antwort auf die RewriteRule Syntax bekommen, hier sind zwei weitere Möglichkeiten für Sie: Schreiben Sie eine benutzerdefinierte iRule auf BigIP (siehe F5 DevCentral ), die für die 301 Antworten und wandeln sie in SSL aussieht; lassen Sie die URL in Ihren WebSphere-Server übergeben und tun eine programmatische Umleitung, die HTTPS aussendet. Da jedoch F5, um die SSL-Verbindung beendet wird, müssen Sie einen benutzerdefinierten Header festgelegt, die Sie konfigurieren (siehe PQ86347 ), so dass die Java request.getScheme () funktioniert wie Sie es erwarten würden.

Andere Tipps

Fixed!

SOL6912: ein HTTP-Profil konfigurieren URLs neu zu schreiben, so dass von einem HTTP-Server umleitet das HTTPS-Protokoll angeben


Aktualisiert: 8/7/07 00.00

Ein ClientSSL virtueller Server wird in der Regel so konfiguriert, HTTPS-Verbindungen von einem Client, entschlüsselt die SSL-Sitzung, und senden Sie die unverschlüsselte HTTP-Anforderung an dem Web-Server zu übernehmen.

Wenn eine angeforderte URI keinen Schrägstrich (Schrägstrich, wie /, am Ende der URI) enthält, erzeugt einig Web-Server einen Höflichkeits Redirect. Ohne einen Schrägstrich, wird der Web-Server behandelt zuerst die Ressource in der URI als Datei angegeben. Wenn die Datei nicht gefunden werden kann, kann der Web-Server für ein Verzeichnis mit dem gleichen Namen suchen und wenn gefunden, mit einem Schrägstrich eine HTTP-302-Umleitung Antwort zurück an den Client senden. Die Umleitung wird den Kunden in HTTP-Modus zurückgegeben werden, anstatt HTTPS, so dass die SSL-Sitzung zum Scheitern verurteilt.

Es folgt ein Beispiel dafür, wie eine HTTP 302 Umleitungsantwort bewirkt, dass die SSL-Sitzung fehlschlagen:

· eine SSL-Sitzung bitten, ein Benutzer https://www.f5.com/stuff ohne einen Schrägstrich.

· Der Client-Browser sendet an den ClientSSL virtuellen Server eine SSL-Anforderung, das auf dem BIG-IP LTM System befindet.

· Das BIG-IP LTM-System entschlüsselt dann die Anfrage und sendet einen GET / stuff Befehl an den Webserver.

· Da die / stuff Datei auf dem Web-Server nicht existiert, sondern ein / stuff / virtuelles Verzeichnis existiert, wird der Webserver sendet für das Verzeichnis eine HTTP 302 Umleitungsantwort, sondern fügt einen Schrägstrich auf die Ressource. Wenn der Web-Server der HTTP 302 Umleitungsantwort sendet, es gibt HTTP (HTTPS nicht).

· Wenn der Client die Antwort HTTP 302-Umleitung empfängt, sendet er eine neue Anforderung an die BIG-IP LTM virtuellen Server, HTTP angibt (nicht HTTPS). Im Ergebnis schlägt die SSL-Verbindung.

ein HTTP-Profil konfiguriert URLs neu schreiben

Im BIG-IP LTM Version 9.x können Sie ein HTTP-Profil konfigurieren URLs neu zu schreiben, so dass Umleitungen von einem HTTP-Server des HTTPS-Protokoll angeben. Um dies zu tun, gehen Sie folgendermaßen vor:

  1. Melden Sie sich im Konfigurationsprogramm.

  2. Klicken Sie auf Local Traffic.

  3. Klicken Sie auf Profile.

  4. Klicken Sie auf die Schaltfläche Erstellen.

  5. Geben Sie einen Namen für das Profil.

  6. Wählen Sie http aus dem übergeordneten Profil Dropdown-Menü.

  7. Sie unter Einstellungen gesetzt Redirect auf alle Rewrite, Matching, oder Knoten, abhängig von der Konfiguration

Zum Beispiel:

o Wählen Sie Alle beliebige HTTP 301 neu zu schreiben, 302, 303, 305, oder 307 Umleitungen an HTTPS

o Wählen Sie Passende Umleitungen neu zu schreiben, wenn der Pfad und URI-Komponenten des Antrags abfragen und die Umleitung identisch sind (mit Ausnahme der Schrägstrich)

o Knoten Wählen Sie Umleitungen neu zu schreiben, wenn die Weiterleitungs-URI einen Knoten IP-Adresse anstelle eines Host-Namen enthält, und Sie wollen das System es auf den virtuellen Server-Adresse ändern

  1. Klicken Sie auf Fertig.

Sie müssen jetzt das neue HTTP-Profil mit dem ClientSSL virtuellen Server verbinden.

Versuchen Sie folgendes:

# Trailing slash problem
RewriteCond    %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d
RewriteRule    ^(.+[^/])$           https://<t:sitename/>$1/ [redirect,last]
LoadModule rewrite_module                modules/mod_rewrite.so

stellen Sie sicher, dass Zeile irgendwo in Ihnen httpd.conf

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top