Назад | Перейти на главную страницу

Под nginx и codeigniter как перенаправить определенные страницы с http на 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, я не буду перенаправлен на https.

Другой пример: если я получаю доступ к индексу домена по https, я не перенаправляюсь по 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;
        }

   .....
}