How can I have CodeIgniter load certain pages using ssl? I have an apache2/mode_ssl
server. I only want certain pages to use ssl. mod_ssl
uses a different document root than non-secure pages. For example: https (port 443) would serve pages out of /var/www/ssl_html/ And http (port 80) serves pages out of /var/www/html/. How would I get codeigniter to play nice with this setup?
views:
1020answers:
2There are few ways to tackle this.
Option 1:
I would probably have the code deployed to both folders, then in the file: /system/application/config/config.php, set your page to:
$config['base_url'] = "http://www.yoursite.com/";
or
$config['base_url'] = "https://www.yoursite.com/";
Then in your non-ssl VirtualHost folder, set your config to redirect protected pages by folder to the SSL site:
RedirectPermanent /sslfolder https://www.yoursite.com/sslfolder
Option 2:
Send everything to SSL and keep all your code in one folder
/system/application/config/config.php, set your page to:
$config['base_url'] = "https://www.yoursite.com/";
Other Options
There are some more hacky ways to do this with header() redirects, etc. but I don't think you want to maintain different code bases for this option. I don't recommend this but you could do something like:
$config['base_url'] = “http://” . $_SERVER['http_host'] . “/”;
If you prefer not to use mod_rewrite try this SSL Helper i wrote
http://it.euphoriatwentythree.com/web-development/codeigniter/codeigniter-ssl-https-helper/