URL umleiten
Steffan
- programmiertechnik
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
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
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