mod rewrite Sonderregel

TribunM

Erfahrenes Mitglied
Hallöle,

also ich habe mir nach stundenlangem Suchen und ausprobieren folgenden Code gebastelt um meine Seite und SSL zu handlen:

Die erste Regel leitet von der de zu der com um, da nur für diese das SSL Zerti gilt.
Das funktioniert auch wunderbar. Dann soll SSL nur für bestimmte php Seiten aktiviert werden.

So sieht das vereinfacht aus:

HTML:
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.url\.de$ [NC]
RewriteRule ^(.*) http://www.url.com/$1 [R=301]
RewriteCond %{HTTP_HOST} ^url\.de$ [NC]
RewriteRule ^(.*) http://www.url.com/$1 [R=301]
RewriteCond %{HTTP_HOST} ^url\.com$ [NC]
RewriteRule ^(.*) http://www.url.com/$1 [R=30

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_FILENAME} login.php [OR]
RewriteCond %{REQUEST_FILENAME} index.php

RewriteRule (.*) https://www.url.com%{REQUEST_URI} [L]

RewriteCond %{REQUEST_METHOD} !^POST$
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{REQUEST_FILENAME} !login.php
RewriteCond %{REQUEST_FILENAME} !index.php

RewriteCond %{REQUEST_FILENAME} (.*)\.php
RewriteRule (.*) http://www.url.com%{REQUEST_URI} [L]

In diesem Fall wird bei url/login.php in SSl geschaltet und bei verlassen der Seite wieder zurück. Das klappt auch. Jetzt habe ich aber folgendes Problem.

In der login.php befindet sich das login script. Ich habe auf der Hauptseite, sprich der index.php eine Kurzanmeldung, die das loginscript verwendet. Jetzt ist es so, dass diese Kurzanmeldung nicht mehr geht wegen dem SSL, also immer erst zu der login.php, der eigentlichen Loginseite umleitet.

Mir sind zwei Lösungsansätze eingefallen.
1. Der erste ich aktiviere für die index Seite SSL, wie oben im Beispiel. In diesem Fall klappt dann auch der Login. ABER

Der stellt zum verrecken die URL nach dem Login nicht wieder auf http um, obwohl es eine andere Seite ist (portal.php).

In diesem Zusammenhang habe ich versucht dem explizit zu sagen, dass er bei portal.php in den normalen http Modus schalten soll. Ist mir leider nicht geglückt.

2. Der zweite Lösungsansatz wäre eine Art weiterreichen an das loginscript, so dass er kurz die login aufruft, aber dann direkt weiterleitet.

Ich wäre sehr erfreut, wenn mir einer zu einem der Ansätze Tipps geben könnte, wie man das angehen kann oder vielleicht hat wer noch eine bessere Lösung.

Greetz Tribbi
 
Und für die Nachwelt, denn irgnedwann kommt jemand mit demselben Problem hierher und der kann mit 'habe es jetzt selbst gelöst' nicht viel anfangen:

Wie hast du es gelöst?
 
Wie egoistisch von mir du hast recht. Also ich habe es jetzt nicht mit einer neuen mod rewrite Regel gelöst, was ich zuerst vorhatte. Das geht zwar in dem ich sozusagen eine Zwangsumleitung einbaue, aber das fand ich unschön. Das kann ich allgemein dann auch nicht empfehlen.

Mich würde ja interessieren, ob es generell so ist, dass SSL wenn auf der index angewandt gleichzeitig bedeutet, dass alle Seiten immer standardmäßig mit SSL verschlüsselt werden, was bei mir ja so war.

Habe den PHP Weg gewählt und es so gelöst, dass ich ein extra login script gebaut habe welches dann SSL verschlüsselt ist und in die Hauptseite eingebettet wird. Wenn ich mich dann anmelde übernimmt er fein die Daten, da die SSL Verschlüsselung bereits aktiviert ist.

Joa das so als Ansatz wie man das lösen kann, wenn man eine Schnellanmeldung mit SSL ermöglich möchte ohne die ganze Seite gleichzeitig verschlüsseln zu müssen.

Als Alternative, kann man mit einer Zwischenseite, so wie hier bei Tutorials.de nach der Anmeldung, die Daten umleiten, SSL aktivieren und dann wieder zur Landingpage weiterleiten. Fand ich aber nicht so schön, den Sinn dieser Seiten hatte ich eh nie verstanden ^^.
 
Zurück