2010-08-19 4 views
3

J'utilise une installation Magento avec le plugin checkout en une étape, ce qui signifie que j'ai très peu de pages nécessitant le protocole HTTPS. Je veux contrôler l'indexation de recherche de HTTPS et l'accès d'utilisateur en redirigeant la version entière de HTTPS du site excepté bien sûr pour le paiement sécurisé.Redirection de HTTPS vers HTTP dans Magento avec exception checkout (Apache)

La section de paiement sécurisée est /onestepcheckout/ (et inclut également certaines sous-pages, par exemple onestepcheckout/failure).

C'est ce que j'ai jusqu'ici mais le HTTPS ne rentre pas sur la page de paiement avec ce code, la redirection fonctionne dans tous les autres cas (ie j'envoie l'index HTTPS pour indexer HTTP) juste l'exception qui est cassée:

#Redirect HTTPS to HTTP except checkout 
RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^onestepcheckout 
RewriteRule ^(.*)$ http://www.mysite.co.uk/$1 [R=301,L] 

#Require SSL on checkout 
RewriteCond %{HTTPS} !on 
RewriteCond %{REQUEST_URI} ^onestepcheckout\/?$ 
RewriteRule ^(.*)$ https://www.mysite.co.uk/$1 [R=301,L] 

Je suis aussi vaguement prudent que le /onestepcheckout/ ne contient pas de ressources sûres et donc une exception peut-être besoin d'ajouter des images et des feuilles de style, etc.

Répondre

0

ne pas oublier que si les chemins du RewriteRule sont évaluée par rapport au contexte du fichier .htaccess, la variable REQUEST_URI renvoie à l'acte demande finale et contient donc la barre oblique initiale.

Vous avez donc besoin

RewriteCond %{REQUEST_URI} ^/onestepcheckout\/?$ 

Sinon, vous pouvez se référer à la partie capturée de la règle de réécriture:

RewriteCond $1 !^onestepcheckout/ 
0

Essayez ceci:

RewriteCond %{REQUEST_URI} onestepcheckout 
    RewriteCond %{HTTPS} !off 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 
Questions connexes