2009-03-17 3 views
2

Nun, ich habe eine Website, die relative Pfade für alle URLs verwendet. Ich habe gerade einen Einkaufswagen hinzugefügt, sodass die zwei oder drei Kassenseiten HTTPS anstelle von HTTP verwenden. Mein Problem ist, dass ein Benutzer mitten in der Kasse ist und auf einen Link in der Navigation klickt oder auf die Seite mit HTTPS, wenn es eine Seite ist, die es nicht benötigt (und in einigen Fällen nicht umgehen kann) es aufgrund externer Dateien GoogleMaps.js zB)So verwenden Sie htaccess, um von https zu http zu springen

Antwort

3

Eigentlich überrascht mich selbst und gehackt etwas zusammen. Leitet alles, was nicht

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^(/checkout) 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
2

können Sie versuchen, etwas zu tun

RewriteCond %{SERVER_PORT} !^(80|8080)$ 
RewriteCond %{REQUEST_URI} !^(checkout|order|etc)$ 
RewriteRule ^(.*)$   http://yoururl$1 

bin ich nicht sicher, ob es funktioniert, weil ich es nicht testen, aber man konnte die ideea von verwenden Testen für {SERVER_PORT} Hoffe es hilft

+0

Sie diese während antwortete ich meine Antwort tippte. Ich mag deine besser aber! –

+0

ist es ziemlich das Gleiche. tatsächlich, mit% {HTTP_HOST}% {REQUEST_URI}, wie Sie es getan haben, ist eleganter :) – andi

+0

Besser, sich nicht auf Port-Nummern verlassen. Überprüfen Sie, ob HTTPS aktiviert ist (oder deaktiviert ist, wenn Sie es erzwingen möchten). – Scott

0

Sie ist www.domain.com/checkout brauchen nicht die zusätzliche RewriteCond Richtlinie /checkout/… auszuschließen:

RewriteCond %{HTTPS} on 
RewriteRule !^checkout(/|$) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
Verwandte Themen