在nginx和codeigniter下,我如何将某些页面从httpredirect到https

我希望某些页面在https上可用,但不在http上。 我有一个Code Igniter框架。

这里是来自nginx conf的代码:

server { listen 80; ...... #enforce https if ($request_uri ~ "^(winkelmandje|(index.php/)?winkelmandje|(index.php/)?history|(index.php/)?mobile/winkelmandje|(index.php/)?winkelmandje/voegtoe)"){ rewrite ^/(.*)$ https://$http_host/$1 permanent; } .... } server { listen 443; ssl on; .... #enforce http if ($request_uri ~ "^(!(index.php/)?winkelmandje|!(index.php/)!mobile/winkelmandje|!(index.php/)?history|assets/|!lib_desktop/|!lib_mobile/|!images/|!widget/|!(index.php/)?winkelmandje/voegtoe)"){ rewrite ^/(.*)$ http://$http_host/$1 permanent; } ..... } 

如果我去我的域名/ winkelmandje(这个页面是购物车)http上我不会redirect到https。

另一个例子是,如果我在https上访问域索引,我不会redirect到http

删除! 在https服务器指令中,并从http和https中删除^ (因为request_uri也包含域)。

 server { listen 80; ...... #enforce https if ($request_uri ~ "(winkelmandje|(index.php/)?winkelmandje|(index.php/)?history|(index.php/)?mobile/winkelmandje|(index.php/)?winkelmandje/voegtoe)"){ rewrite ^/(.*)$ https://$http_host/$1 permanent; } .... } server { listen 443; ssl on; .... #enforce http if ($request_uri ~ "(!(index.php/)?winkelmandje|!(index.php/)!mobile/winkelmandje|!(index.php/)?history|assets/|!lib_desktop/|!lib_mobile/|!images/|!widget/|!(index.php/)?winkelmandje/voegtoe)"){ rewrite ^/(.*)$ http://$http_host/$1 permanent; } ..... }