2

我已经有一个 301 从HTTPS到整个HTTP站点。但我想排除结帐页面,以便它们始终HTTPS(位于“/shopping-cart/”中)

试过这个:

#RewriteCond %{SERVER_PORT} ^443$
#RewriteRule ^(.*)$ http://www.example.com$1 [R=301]

#RewriteCond %{SERVER_PORT} ^80$
#RewriteCond %{HTTP_HOST} ^www.example.com$
#RedirectRule ^/shopping-cart(.*)$ https://%{HTTP_HOST}/shopping-cart$1 [R=301]

当我进入/shopping-cart/页面时,这给了我一个重定向循环

4

1 回答 1

0

我认为导致循环的是规则的顺序。交换它们并将[l]标签添加到shopping_cart规则中([l]意思是“最后”,即如果此规则匹配,则停止处理进一步的规则)

#RewriteCond %{SERVER_PORT} ^80$
#RewriteCond %{HTTP_HOST} ^www.example.com$
#RedirectRule ^/shopping-cart(.*)$ https://%{HTTP_HOST}/shopping-cart$1 [R=301, l]

#RewriteCond %{SERVER_PORT} ^443$
#RewriteRule ^(.*)$ http://www.example.com$1 [R=301]
于 2015-07-13T10:38:05.260 回答