amm*_*nkc 20 php apache ssl https codeigniter
如何使用SSL使用CodeIgniter加载特定页面?我有一个apache2/mode_ssl
服务器.mod_ssl
使用与非安全页面不同的文档根.例如,https(端口443)将提供页面/var/www/ssl_html/
和http(端口80)服务页面/var/www/html/
.如何让CodeIgniter在这个设置中发挥出色?
ran*_*omx 17
解决这个问题的方法很少.
选项1:
我可能会将代码部署到两个文件夹,然后在文件中:/system/application/config/config.php,将您的页面设置为:
$config['base_url'] = "http://www.yoursite.com/";
Run Code Online (Sandbox Code Playgroud)
要么
$config['base_url'] = "https://www.yoursite.com/";
Run Code Online (Sandbox Code Playgroud)
然后在您的非ssl VirtualHost文件夹中,将您的配置设置为按文件夹将受保护的页面重定向到SSL站点:
RedirectPermanent /sslfolder https://www.yoursite.com/sslfolder
Run Code Online (Sandbox Code Playgroud)
选项2:
将所有内容发送到SSL并将所有代码保存在一个文件夹中
/system/application/config/config.php,将您的页面设置为:
$config['base_url'] = "https://www.yoursite.com/";
Run Code Online (Sandbox Code Playgroud)
其他选择
使用header()重定向等等,有一些更多的hacky方法可以做到这一点,但我不认为你想为这个选项维护不同的代码库.我不推荐这个,但你可以这样做:
$config['base_url'] = “http://” . $_SERVER['http_host'] . “/”;
Run Code Online (Sandbox Code Playgroud)
sky*_*ler 11
在application/config/config.php中,将base_url设置为:
$config['base_url'] = ($_SERVER['SERVER_PORT'] == 443 ? 'https' : 'http') . "://{$_SERVER['HTTP_HOST']}/";
这将允许它在任何域上工作,这在本地测试时很方便.
我将以下行放在./application/config/config.php文件中,它完美地运行:
$protocol = ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ) ? 'https' : 'http';
$config['base_url'] = $protocol.'://www.yoursite.com';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42112 次 |
最近记录: |