views:

1020

answers:

2

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?

+2  A: 

There 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'] . “/”;
randy melder
Thanks. I think I'm gonna go with the first option and then rewrite the url_help to handle https.
ammonkc
A: 

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/

pk