Steffan: URL umleiten

Hallo,

ich habe ein Problem mit dem Umleiten meienr Seite.
Und zwar geht es um ein Programm, auf dem man sich zwar anmelden muss(Session), da aber dennoch mit sensiblen Daten gearbeitet wird, möchte ich das ganze über eine SSL-Verschlüsselung laufen lassen.
Also von meiner Seite
www.meineSeite.de/unterseite/login.php
umgeleitet werden auf
https://www.meineSeite.de/unterseite/login.php

Von der login.php wird eine andere Datei aufgerufen, die dann natürlich nicht mehr umgeleitet werden soll.

Es geht mir also NUR darum, dass vor der URL das https eingefügt wird.
[...
    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) https://www.meineSeite.de/unterseite/$1 [R=301,L]
...]

So klappt es leider nicht, dies in einer Endlosschleife endet.

Ich könnte natürlich auf eine andere Unterseite verweisen um diese Schleife zu umgehen z.B.
    RewriteRule (.*) https://www.meineSeite.de/unterseite2/$1 [R=301,L]

Doch dann kann ja so´n Schlaumischlumpf immer noch dher gehen und direkt die URL www.meineSeite.de/unterseite2/login.php aufrufen.

Das ist also auch keine Lösung.

Wie mache ich es richtig, OHNE das man diese Umleitung austricksen kann?

Besten Dank für Eure Hilfestellungen

Steffan

  1. Kann mir den keiner hierbei helfen?

    Ich habe jetzt folgendes geschafft:

    wenn der User
    www.meineSeite.de/unterseite/login.php
    eingibt, wird er automatisch zu folgender Seite geleitet:
    https://www.meineSeite.de/unterseite/login.php

    Soweit so gut. Wenn der User jedoch das www. nicht eingibt, gelangt er immer noch zu der unverschöüsselten login.php.

    Das ganze habe ich jetzt wie folgt umgesetzt:
    [...
        Options +FollowSymLinks
        RewriteEngine on
        RewriteRule .+eineSeite.de/unterseite/login.php https://www.meine Seite.de/unterseite/login.php
    ...]

    Was ich nicht verstehe: ".+" steht meines Wissen nach für: "Ein ODER mehrere beliebige Zeichen. Daher habe ich statt "meineSeite.de" nur "eineSeite.de" verwendet, falls der user ohne "www" die Seite aufruft.

    Was mache ich falsch?

    Ich würde mich echt über Hilfe freuen

    DANKE

    1. Hi Steffan!

      ein

      RewriteCond %{HTTPS} =off

      prüft vor der Ausführung des mod_rewrite, ob der Request über https kommt. Wenn nicht (=off), wird die Rewrite-Regel ausgeführt:

      RewriteEngine on
      RewriteRule ^login.php$ https://%{HTTP_HOST}/pfad/zu/login.php [R,L]

      Das unterbindet die Endlosschleife, mit der du kämpfst.

      Umgeleitet wird unabhängig vom www. in der Andresse auf eine URL ohne www. Solltest du aber www auf www und nicht-www auf nicht-www weiterleiten wollen (Sinn?), könntest du zwei RewriteRules machen, die du durch

      RewriteCond %{HTTP_HOST} ^www.

      von einander spezifizierst. Oder du vereinheitlichst einfach alles von Anfang an (alles mit www.)...

      RewriteEngine On

      RewriteCond %{HTTP_HOST} !^www. [NC]
      RewriteCont %{HTTP_HOST} !""
      RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1

      tschau
      ichen

      --
      Halte deine Umwelt sauber!