【发布时间】:2012-01-29 06:08:11
【问题描述】:
我有一个有公共和私人区域的网站。私人区域 应通过 HTTPS 提供服务。我想重定向一次到一个显式的 HTTPS url,然后使用相对 URL,让所有链接都是安全的。当用户注销时,我将明确链接到一个绝对不安全的 HTTP URL。
我的登录表单通过常规 HTTP 显示为一个不安全的站点。我的登录表单发布到 https://www.mysite.com/login/validate ,它使用安全连接加载。
我的日志显示 Apache 正在通过 HTTPS 加载 URL,并且 codeigniter 正在正确地进行验证。
在我的控制器函数结束时,我使用 CodeIgniter 的 URL 助手的 redirect 方法和相对 URL 重定向到 /myaccount。
redirect('/myaccount');
这会导致 codeigniter 重定向到非 HTTPS URL。
我的配置 base_url 是非 HTTPS:
$config['base_url'] = "http://www.mysite.com"
这是因为网站的某些部分是安全的,而其他部分则不安全。
有没有办法告诉 CodeIgniter 在进行相对重定向时保留 HTTPS?如果当前控制器是通过 HTTPS 加载的并且我正在执行相对重定向,为什么假设我想访问非 HTTPS 站点?
我想要的行为是,如果我正在执行相对重定向,它应该保留加载当前请求的协议。相反,它正在切换到配置 base_url 定义的内容,即使对于相对重定向也是如此。
【问题讨论】:
标签: php codeigniter