带有HTTPS前缀的site_url()

时间:2013-09-28 03:07:00

标签: codeigniter

*的更新

当我使用site_url()时,它会返回 http://mysite.com

是否有功能或选项让这个用HTTPS返回网站网址?

示例

因此site_url( array('use_https' => 'on') )获取 https:mysite.com

2 个答案:

答案 0 :(得分:1)

不具体。但你可以编写自己的函数或只使用:

https://<?php echo $_SERVER['SERVER_NAME']; ?>

function url_https($base_url)
{
    return str_replace('http://', 'https://', $base_url);
}

答案 1 :(得分:0)

1 Hack是将基本URL的codeignite定义更改为// ... //将使用现在正在使用的协议。

如果您使用https://example.com,如果您使用http://example.com,您的链接将使用https,您的链接将使用http

/* Location: ./system/core/Config.php */
if (isset($_SERVER['HTTP_HOST']) && preg_match('/^((\[[0-9a-f:]+\])|(\d{1,3}(\.\d{1,3}){3})|[a-z0-9\-\.]+)(:\d+)?$/i', $_SERVER['HTTP_HOST']))
{
    $base_url = /*(is_https() ? 'https' : 'http').'://'.*/"//".
                $_SERVER['HTTP_HOST'].substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'], basename($_SERVER['SCRIPT_FILENAME'])));
}
else
{
    $base_url = 'http://localhost/';
}