Имеется сайт на Codeigniter, где нужно пару страниц поместить под HTTPS. Я перепробовал все варианты, который смог нагуглить, но ни один не увенчался успехом — сайт вообще никак не реагирует.
Пробую сделать приблизительно так:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /payment
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}
При чем, что весь сайт закрыть HTTPS-ом получается легко:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}
Но отдельную страницу — просто никак!
Сервер вообще игнорирует это правило и выводит всё по HTTP, как ни в чем ни бывало.
Урл для HTTPS такой:
domain.com/payment/buyproduct
Хуже всего еще и то, что потом, при выходе с этой страницы, HTTPS должен автоматически поменяться снова на HTTP. Дело в том, что функция Codeigniter-a base_url() выводит урл вместе с протоколом и если на страницу зашли по HTTPS, то и все ссылки становятся тоже защищенными, что неприемлемо.
А для того, чтобы обойти всё это дело в коде, надо запиливать огромный костыль на весь проект, чтобы выводить в нужных местах ссылки с нужным протоколом — это архигемор и хотелось бы всё решить с помощью htaccess.
Исходный .htaccess выглядит таким образом:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|themes|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#в этом месте я пытаюсь добавить правила для HTTPS
Он убирает index.php из урлов Codeigniter-а. Может именно из-за этого не получается финт с HTTPS-ом? Я не знаток htacces, поэтому я вообще не понимаю, как его настраивать. Помогите, пожалуйста.
P.S.: Только, прошу. не надо предлагать помещать весь сайт под HTTPS. Задача стоит вполне конкретная. Надо защитить всего пару страниц.