I'm using Codeigniter and following these instructions to force ssl but all requests are being redirected to
http://staging.example.com/index.php/https:/staging.example.com
My .htaccess is:
### Canonicalize codeigniter URLs
# Enforce SSL https://www. 
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
###
# Removes access to the system folder by users.
# Additionally this will allow you to create a System.php controller,
# previously this would not have been possible.
# 'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
# Checks to see if the user is attempting to access a valid file,
# such as an image or css document, if this isn't true it sends the
# request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
                You could do it in code instead of using htaccess.
You can create a helper function that will redirect the page to be over SSL, which you call from your controller.
In your helper;
function force_ssl() {
    if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") {
        $url = "https://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
        redirect($url);
        exit;
    }
}
Then in your controller;
class Whatever extends CI_Controller {
    function __construct() {
        parent::__construct();
        $this->load->helper(array('your_ssl_helper'));
    }
    public function index() {
        force_ssl();
        ...
    }
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With