[mod_rewrite] .htaccess - SSL Weiterleitung / IS_SUBREQ
Hallo,
Ich möchte eine Webseite per RewriteCond/RewriteRule (.htaccess) je nach Unterseite auf SSL umleiten. Im Grunde gibt es Ordner und einige Unterdateien, welche via HTTPS laufen sollen. Alle anderen sollen auf jeden Fall wieder auf HTTP umgeleitet werden.
Das Poblem ist, das von Seiten, welche via HTTPS laufen sollen, auch unterseiten aufgerufen werden (CSS/JS), welche nach der Regel normalerweise nur auf HTTP laufen sollen.
Beispiel:
www.seite.de/wichtig/ ... (alle Dateien in /wichtig)
-> z.B. index.php -->HTTPS
-> seite.de/skript.js -->HTTPS
(geladen aus index.php)
www.seite.de/ ... (alle anderen Ordner als /wichtig, damit auch der Root)
-> z.B. index.php -->HTTP
-> skript.js -->HTTP
(geladen aus index.php)
HTACCESS:
# Regel 1
# Regel 2
Das Problem ist, nun dass in meiner Umsetzung www.seite.de/skript.js immer via HTTP geladen wird, selbst wenn es selbst von www.seite.de/wichtig/skript.js aus nachgeladen wird.
Daher müsste ich der 2. Regel irgendwie beibringen, dass diese nur reagieren soll, wenn die URI nicth selbst von einer anderen aufgerufen wird.
Für mein Verständnis sollte das mit IS_SUBREQ abgefragt werden könne, es funktioniert aber nicht
# Regel 2b
Im Grunde merke ich keine Änderung. Die SSL-verschlüsselten Seiten erhalten leider immer das unverschlüsselt übertragene Unterskript.
Mach ich einen Fehler oder geht mein Vorgehen gar nicht so wie gedacht?
Vielen Dank!
Hallo,
Ich möchte eine Webseite per RewriteCond/RewriteRule (.htaccess) je nach Unterseite auf SSL umleiten. Im Grunde gibt es Ordner und einige Unterdateien, welche via HTTPS laufen sollen. Alle anderen sollen auf jeden Fall wieder auf HTTP umgeleitet werden.
Das Poblem ist, das von Seiten, welche via HTTPS laufen sollen, auch unterseiten aufgerufen werden (CSS/JS), welche nach der Regel normalerweise nur auf HTTP laufen sollen.
Beispiel:
www.seite.de/wichtig/ ... (alle Dateien in /wichtig)
-> z.B. index.php -->HTTPS
-> seite.de/skript.js -->HTTPS
(geladen aus index.php)
www.seite.de/ ... (alle anderen Ordner als /wichtig, damit auch der Root)
-> z.B. index.php -->HTTP
-> skript.js -->HTTP
(geladen aus index.php)
HTACCESS:
# Regel 1
Code:
RewriteCond %{REQUEST_URI} ^(/wichtig/) [NC]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.seite.de/$1 [R=301,L]
# Regel 2
Code:
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{REQUEST_URI} !^(/wichtig/) [NC]
RewriteRule ^(.*)$ http://www.seite.de/$1 [R=301,L]
Das Problem ist, nun dass in meiner Umsetzung www.seite.de/skript.js immer via HTTP geladen wird, selbst wenn es selbst von www.seite.de/wichtig/skript.js aus nachgeladen wird.
Daher müsste ich der 2. Regel irgendwie beibringen, dass diese nur reagieren soll, wenn die URI nicth selbst von einer anderen aufgerufen wird.
Für mein Verständnis sollte das mit IS_SUBREQ abgefragt werden könne, es funktioniert aber nicht
# Regel 2b
Code:
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{IS_SUBREQ} false
RewriteCond %{REQUEST_URI} !^(/wichtig/) [NC]
RewriteRule ^(.*)$ http://www.seite.de/$1 [R=301,L]
Im Grunde merke ich keine Änderung. Die SSL-verschlüsselten Seiten erhalten leider immer das unverschlüsselt übertragene Unterskript.
Mach ich einen Fehler oder geht mein Vorgehen gar nicht so wie gedacht?
Vielen Dank!
Zuletzt bearbeitet: