如何使登录和注册处于ssl模式?

问题描述 投票:1回答:2

我在Windows 7上使用CodeIgniter和wamp。我生成了一个自签名证书以及在https下运行网站所需的所有其他内容。我的网站在SSL模式下运行良好。问题是我只希望我的登录和注册页面处于SSL模式。在CI中,我们只能配置一个URL,即:

$config['base_url'] = "https://localhost/abc";

我不想以SSL模式运行我的整个网站。我怎样才能做到这一点?我看了以下链接:

http://stackoverflow.com/questions/1500527/how-to-use-ssl-with-codeigniter

但它并没有解决我的任何问题。我不想复制该人正在谈论的整个网站文件夹。我想为http和https维护相同的会话数据和cookie。我可以在控制器的构造函数中对需要SSL的页面进行硬编码吗?如果收到http上该安全页面的请求,我应该重定向到https。这种方法有效还是我需要处理它?如果有任何正确和优雅的解决方案,请告诉我。

php codeigniter wamp
2个回答
3
投票

我有同样的问题。就我而言,我只能在控制面板中使用SSL。

我通过重写URL帮助程序解决了这个问题:

function base_url($flag = true)
{
    $CI = CI_Controller::get_instance();
    if (strpos(current_url(), '/cp/') and $flag) {
        return str_ireplace('http://', 'https://', $CI->config->slash_item('base_url')).'index.php/';
    }
    return $CI->config->slash_item('base_url');
}

在这种情况下,'/ cp /'表示“控制面板”。我被迫这样做是因为其他方式(比如将secure_base_url添加到config.php或不同的SSL帮助程序)对我来说不起作用。

附加的$flag参数适用于应在控制面板中加载的图像,CSS和JS文件。在这些情况下使用base_url(false),因为https://www.example.com/**index.php**/image.pngimage.png文件的错误地址)。

你可以为你的网站做同样的事情。

希望这可以帮助。


2
投票

使用.htaccess文件将是我最好的猜测

RewriteRule ^my-account\/?(.+)?$ https://mydomain.com/my-account/$1 [NC,R,L]

那会对你有用吗?

© www.soinside.com 2019 - 2024. All rights reserved.