由于以下原因,我需要在codeigniter中设置动态基本URL.
Jan*_*ana 18
我只需要分享我的知识,因为我已经找到了答案,如下所述.
只需使用以下内容覆盖config/config.php中的行:
$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/';
Run Code Online (Sandbox Code Playgroud)
如果您使用的是子文件夹,则可以使用以下代码:
$root = "http://".$_SERVER['HTTP_HOST'];
$root .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
$config['base_url'] = "$root";
Run Code Online (Sandbox Code Playgroud)
Mud*_*ark 18
CodeIgniter会base_url自行解决,所以你可以这样做:
$config['base_url'] = '';
Run Code Online (Sandbox Code Playgroud)
就像在文档中说的那样:
万一您需要允许多个域,或者根据请求动态使用http://和https://前缀,请记住application / config / config.php仍然是一个PHP脚本,您可以在其中用几行代码创建此逻辑。例如:
$allowed_domains = array('domain1.tld', 'domain2.tld');
$default_domain = 'domain1.tld';
if (in_array($_SERVER['HTTP_HOST'], $allowed_domains, TRUE))
{
$domain = $_SERVER['HTTP_HOST'];
}
else
{
$domain = $default_domain;
}
if (! empty($_SERVER['HTTPS']))
{
$config['base_url'] = 'https://'.$domain;
}
else
{
$config['base_url'] = 'http://'.$domain;
}
Run Code Online (Sandbox Code Playgroud)
你也可以尝试这个。
$base_url = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$base_url .= "://". @$_SERVER['HTTP_HOST'];
$base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
$config['base_url'] = $base_url;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55850 次 |
| 最近记录: |