apache rewrite demande POST SSL https mod_rewrite

J’utilise les https sécurisés pour le paiement et la consultation du panier, tandis que la partie avant du magasin où se trouvent les produits n’est pas sécurisée – http. Le transfert de http à https via les règles suivantes:

RewriteRule \.(gif|jpg|jpeg|jpe|png|css|js)$ - [S=1] RewriteRule ^/(checkout|customer|sales|wishlist)/(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

Tous fonctionnent correctement pendant un certain temps, le problème est que, lors de l’ajout d’un produit au panier, la variable de poste avec la quantité de produit est supprimée. Si je supprime la règle de réécriture, la commande / checkout / url devient non sécurisée et la quantité y parvient. Je peux append les journaux d’access apache ici pour montrer ce qui se passe avec https on et https off – essentiellement sans aucune redirection, il y a une requête POST et une requête GET, alors qu’avec la redirection il y a un POST et beaucoup de GET.

La question est pour les experts Apache mod_rewrite – y a-t-il quelque chose de spécial que je dois faire en plus des règles que je dois déjà obtenir pour que le contenu POST soit livré là où il va?

Voici les journaux d’access:

/ * HTTP * /

 121.99.xxx.xxx - - [22/Feb/2014:08:48:28 +0400] "POST /checkout/cart/xxx.xxx/ HTTP/1.1" 302 567 "http://pacifika.ru/checkout/cart/" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36" 121.99.xxx.xxx - - [22/Feb/2014:08:48:29 +0400] "GET /checkout/cart/ HTTP/1.1" 200 25465 "http://pacifika.ru/checkout/cart/" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36" 

/ * HTTPS * /

 121.99.xxx.xxx - - [22/Feb/2014:08:50:53 +0400] "POST /checkout/cart/xxx.xxx/ HTTP/1.1" 302 502 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36" 121.99.xxx.xxx - - [22/Feb/2014:08:50:54 +0400] "GET /checkout/cart/xxx.xxx/ HTTP/1.1" 302 820 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36" 121.99.xxx.xxx - - [22/Feb/2014:08:50:54 +0400] "GET /checkout/cart/ HTTP/1.1" 302 482 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36" 121.99.xxx.xxx - - [22/Feb/2014:08:50:55 +0400] "GET /checkout/cart/ HTTP/1.1" 200 25563 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36" 

Résolu, voici une règle de plus que je devais append:

 RewriteCond %{REQUEST_METHOD} !^POST$ 

Cela a fait disparaître le problème 🙂