Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
apache重写请求后SSL https mod_重写_Apache_Mod Rewrite_Redirect_Ssl_Https - Fatal编程技术网

apache重写请求后SSL https mod_重写

apache重写请求后SSL https mod_重写,apache,mod-rewrite,redirect,ssl,https,Apache,Mod Rewrite,Redirect,Ssl,Https,我使用安全https结账和查看购物车,而产品所在的商店前端不安全——标准http。通过以下规则实现从http到https的传输: RewriteRule \.(gif|jpg|jpeg|jpe|png|css|js)$ - [S=1] RewriteRule ^/(checkout|customer|sales|wishlist)/(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 现在,所有这些都可以正常工作一段时间,问题是在向购物车添加产品时,

我使用安全https结账和查看购物车,而产品所在的商店前端不安全——标准http。通过以下规则实现从http到https的传输:

RewriteRule \.(gif|jpg|jpeg|jpe|png|css|js)$ - [S=1]
RewriteRule ^/(checkout|customer|sales|wishlist)/(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
现在,所有这些都可以正常工作一段时间,问题是在向购物车添加产品时,会删除带有产品数量的post变量。如果我删除了重写规则,/checkout/url将变得不安全,数量也将正常。 我可以在这里添加apache访问日志来显示https打开和https关闭时会发生什么-基本上没有重定向,只有一个POST和一个GET请求,而重定向有一个POST和一大堆GET

问题是针对Apache mod_重写专家的——除了我已经制定的规则之外,我是否还需要做一些特殊的事情来将帖子内容交付到它要去的地方

以下是访问日志:

/*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"

解决了这个问题,我还要补充一条规则:

RewriteCond %{REQUEST_METHOD} !^POST$

这就解决了问题:)

你能发布一个URL示例吗?下面是访问日志,显示了在非安全的“添加到购物车”单击(重写规则被注释掉)过程中,第一次发生了什么,第二次启用了“重写到https”规则。有人吗?必须有人知道更多关于重定向和POST请求的信息?我觉得下面的日志有点奇怪,因为启用https似乎会在设置为200之前生成3个重定向302请求,而http只执行一个302请求。。。